httpauth.c

来自「小型的web服务器源码」· C语言 代码 · 共 52 行

C
52
字号
///////////////////////////////////////////////////////////////////////////////// http.c//// MiniWeb HTTP authentication implementation///////////////////////////////////////////////////////////////////////////////#include <stdio.h>#include <stdlib.h>#include <string.h>#include <ctype.h>#include "httppil.h"#include "httpapi.h"#include "httpint.h"#ifdef HTTPAUTHDWORD g_dwAuthenticatedNode=0;DWORD g_dwAuthenticationExpirationTime=0;OCTET g_bAuthenticationOn=FALSE;extern HttpStats g_stats;#endif////////////////////////////////////////////////////////////////////////////// _mwCheckAuthentication// Check if a connected peer is authenticated////////////////////////////////////////////////////////////////////////////BOOL _mwCheckAuthentication(HttpSocket* phsSocket){  BOOL bAuthenticated=TRUE;#ifdef HTTPAUTH    struct sockaddr_in sinAddress;  socklen_t sLength=sizeof(struct sockaddr_in);  getpeername(phsSocket->iSocket,              (struct sockaddr*)&sinAddress,&sLength);    if (g_bAuthenticationOn &&       g_dwAuthenticatedNode!=ntohl(sinAddress.sin_addr.s_addr)) {    // Not authenticated    g_stats.authFailCount++;    bAuthenticated=FALSE;  }   else if (g_bAuthenticationOn) {    // Extend authentication period    g_dwAuthenticationExpirationTime = gettime() + HTTPAUTHTIMEOUT;  }  #endif  return bAuthenticated;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?