Thread: [Mod-auth-commit] mod_authn_pop3/src mod_authn_pop3.c,1.2,1.3
Brought to you by:
firechipmunk,
honx
From: <fir...@us...> - 2003-11-11 04:02:07
|
Update of /cvsroot/mod-auth/mod_authn_pop3/src In directory sc8-pr-cvs1:/tmp/cvs-serv29329/src Modified Files: mod_authn_pop3.c Log Message: indented code properly, and made it all work. Index: mod_authn_pop3.c =================================================================== RCS file: /cvsroot/mod-auth/mod_authn_pop3/src/mod_authn_pop3.c,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** mod_authn_pop3.c 11 Nov 2003 03:26:48 -0000 1.2 --- mod_authn_pop3.c 11 Nov 2003 04:02:04 -0000 1.3 *************** *** 82,86 **** #include "http_log.h" #include "http_protocol.h" ! #include "http_request.h" /* for ap_hook_(check_user_id | auth_checker)*/ #include "mod_auth.h" --- 82,86 ---- #include "http_log.h" #include "http_protocol.h" ! #include "http_request.h" /* for ap_hook_(check_user_id | auth_checker) */ #include "mod_auth.h" *************** *** 91,95 **** } pop_auth_config_rec; ! static void *create_authn_pop3_dir_config(apr_pool_t *p, char *d) { pop_auth_config_rec *conf = apr_palloc(p, sizeof(*conf)); --- 91,95 ---- } pop_auth_config_rec; ! static void *create_authn_pop3_dir_config(apr_pool_t * p, char *d) { pop_auth_config_rec *conf = apr_palloc(p, sizeof(*conf)); *************** *** 101,107 **** } ! static const char *set_pop_hostname(cmd_parms *cmd, ! void *dir_config, ! const char *arg) { pop_auth_config_rec *conf = dir_config; --- 101,106 ---- } ! static const char *set_pop_hostname(cmd_parms * cmd, ! void *dir_config, const char *arg) { pop_auth_config_rec *conf = dir_config; *************** *** 111,117 **** } ! static const char *set_pop_port(cmd_parms *cmd, ! void *dir_config, ! const char *arg) { pop_auth_config_rec *conf = dir_config; --- 110,115 ---- } ! static const char *set_pop_port(cmd_parms * cmd, ! void *dir_config, const char *arg) { pop_auth_config_rec *conf = dir_config; *************** *** 122,142 **** ! static const command_rec authn_pop3_cmds[] = ! { AP_INIT_TAKE1("AuthnPOP3Hostname", set_pop_hostname, ! NULL, ! OR_AUTHCFG, "hostname for POP Server"), AP_INIT_TAKE1("AuthnPOP3Port", set_pop_port, ! NULL, ! OR_AUTHCFG, "port for POP Server"), {NULL} }; #define RECVLEN 200 ! static apr_status_t send_pop_command( request_rec *r, ! apr_socket_t *sock, ! const char* command, ! char*response, ! apr_size_t *responselen) { apr_status_t rv; --- 120,137 ---- ! static const command_rec authn_pop3_cmds[] = { AP_INIT_TAKE1("AuthnPOP3Hostname", set_pop_hostname, ! NULL, ! OR_AUTHCFG, "hostname for POP Server"), AP_INIT_TAKE1("AuthnPOP3Port", set_pop_port, ! NULL, ! OR_AUTHCFG, "port for POP Server"), {NULL} }; #define RECVLEN 200 ! static apr_status_t send_pop_command(request_rec * r, ! apr_socket_t * sock, ! const char *command, char *response, apr_size_t * responselen) { apr_status_t rv; *************** *** 146,173 **** sendlen = strlen(command); ! rv = apr_socket_send( sock, command, &sendlen); ! if (rv != APR_SUCCESS) { ! ap_log_rerror(APLOG_MARK, APLOG_ERR, rv , r, "apr_socket_send"); return rv; ! } ! ! memset( response, 0, *responselen); ! rv = apr_socket_recv( sock, response, responselen); ! if (rv != APR_SUCCESS) { ! ap_log_rerror(APLOG_MARK, APLOG_ERR, rv , r, "apr_socket_recv"); return rv; ! } return rv; } ! static apr_status_t pop_auth( ! request_rec *r, ! const char *user, ! const char *pass, ! const char *hostname, ! int port, ! apr_interval_time_t timeout) { apr_status_t rv; --- 141,167 ---- sendlen = strlen(command); ! rv = apr_socket_send(sock, command, &sendlen); ! if (rv != APR_SUCCESS) { ! ap_log_rerror(APLOG_MARK, APLOG_ERR, rv, r, "apr_socket_send"); return rv; ! } ! //ap_log_rerror(APLOG_MARK, APLOG_DEBUG, rv , r, "sending: %s", command); ! memset(response, 0, *responselen); ! rv = apr_socket_recv(sock, response, responselen); ! if (rv != APR_SUCCESS) { ! ap_log_rerror(APLOG_MARK, APLOG_ERR, rv, r, "apr_socket_recv"); return rv; ! } ! //ap_log_rerror(APLOG_MARK, APLOG_DEBUG, rv , r, "got: %s", response); ! return rv; } ! static apr_status_t pop_auth(request_rec * r, ! const char *user, ! const char *pass, ! const char *hostname, int port, apr_interval_time_t timeout) { apr_status_t rv; *************** *** 176,255 **** apr_pool_t *pool; ! char *line=NULL; ! char *recv=NULL; ! apr_size_t recvlen; pool = r->pool; ! recv = apr_palloc( pool, RECVLEN); ! recvlen = RECVLEN; ! rv = apr_sockaddr_info_get(&sockaddr, hostname, APR_UNSPEC, port, 0, pool ); ! if (rv != APR_SUCCESS) { ! ap_log_rerror(APLOG_MARK, APLOG_ERR, rv , r, "apr_sockaddr_info_get"); return rv; ! } ! if (apr_socket_create(&sock, sockaddr->family, SOCK_STREAM, 0, pool) != APR_SUCCESS) { ! ap_log_rerror(APLOG_MARK, APLOG_ERR, rv , r, "apr_socket_create"); return rv; } rv = apr_socket_timeout_set(sock, timeout); ! if (rv != APR_SUCCESS) { ! ap_log_rerror(APLOG_MARK, APLOG_ERR, rv , r, "apr_socket_timeout_set"); return rv; ! } ! rv = apr_socket_connect( sock, sockaddr); ! if (rv != APR_SUCCESS) { ! ap_log_rerror(APLOG_MARK, APLOG_ERR, rv , r, "apr_socket_connect"); return rv; ! } ! rv = apr_socket_recv( sock, recv, &recvlen); ! if (rv != APR_SUCCESS) { ! ap_log_rerror(APLOG_MARK, APLOG_ERR, rv , r, "apr_socket_recv handshake"); apr_socket_close(sock); return rv; ! } ! if ( *recv != '+' ) { ! ap_log_rerror(APLOG_MARK, APLOG_ERR, 0 , r, "invalid handshake %s", recv); apr_socket_close(sock); return APR_EGENERAL; } ! line = apr_psprintf(pool, "USER %s\r\n", user ); ! rv = send_pop_command(r, sock, line, recv, &recvlen ); ! if (rv != APR_SUCCESS) { apr_socket_close(sock); return rv; ! } ! if ( *recv != '+' ) { ! ap_log_rerror(APLOG_MARK, APLOG_ERR, rv , r, "invalid response to USER command %s",recv); apr_socket_close(sock); return APR_EGENERAL; } ! recvlen = RECVLEN; ! line = apr_psprintf(pool, "PASS %s\r\n", pass ); ! rv = send_pop_command(r, sock, line, recv, &recvlen ); ! if (rv != APR_SUCCESS) { apr_socket_close(sock); return rv; } ! if ( *recv != '+' ) { ! ap_log_rerror(APLOG_MARK, APLOG_ERR, 0 , r, "invalid password %s",recv); apr_socket_close(sock); return APR_EGENERAL; } ! recvlen = RECVLEN; ! line = apr_psprintf(pool, "QUIT\r\n" ); ! rv = send_pop_command(r, sock, line, recv, &recvlen ); ! rv = apr_socket_close( sock ); ! if (rv != APR_SUCCESS) { ! ap_log_rerror(APLOG_MARK, APLOG_ERR, rv , r, "apr_socket_close"); return rv; ! } return APR_SUCCESS; --- 170,259 ---- apr_pool_t *pool; ! char *line = NULL; ! char *recv = NULL; ! apr_size_t recvlen; ! pool = r->pool; ! if (user == NULL) { ! return APR_BADARG; ! } ! recv = apr_palloc(pool, RECVLEN); ! recvlen = RECVLEN; ! ! rv = apr_sockaddr_info_get(&sockaddr, hostname, APR_UNSPEC, port, 0, pool); ! if (rv != APR_SUCCESS) { ! ap_log_rerror(APLOG_MARK, APLOG_ERR, rv, r, "apr_sockaddr_info_get"); return rv; ! } ! if (apr_socket_create(&sock, sockaddr->family, SOCK_STREAM, 0, ! pool) != APR_SUCCESS) { ! ap_log_rerror(APLOG_MARK, APLOG_ERR, rv, r, "apr_socket_create"); return rv; } rv = apr_socket_timeout_set(sock, timeout); ! if (rv != APR_SUCCESS) { ! ap_log_rerror(APLOG_MARK, APLOG_ERR, rv, r, "apr_socket_timeout_set"); return rv; ! } ! rv = apr_socket_connect(sock, sockaddr); ! if (rv != APR_SUCCESS) { ! ap_log_rerror(APLOG_MARK, APLOG_ERR, rv, r, "apr_socket_connect"); return rv; ! } ! rv = apr_socket_recv(sock, recv, &recvlen); ! if (rv != APR_SUCCESS) { ! ap_log_rerror(APLOG_MARK, APLOG_ERR, rv, r, ! "apr_socket_recv handshake"); apr_socket_close(sock); return rv; ! } ! if (*recv != '+') { ! ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, "invalid handshake %s", ! recv); apr_socket_close(sock); return APR_EGENERAL; } ! line = apr_psprintf(pool, "USER %s\r\n", user); ! rv = send_pop_command(r, sock, line, recv, &recvlen); ! if (rv != APR_SUCCESS) { apr_socket_close(sock); return rv; ! } ! if (*recv != '+') { ! ap_log_rerror(APLOG_MARK, APLOG_ERR, rv, r, ! "invalid response to USER command %s", recv); apr_socket_close(sock); return APR_EGENERAL; } ! recvlen = RECVLEN; ! line = apr_psprintf(pool, "PASS %s\r\n", pass); ! rv = send_pop_command(r, sock, line, recv, &recvlen); ! if (rv != APR_SUCCESS) { apr_socket_close(sock); return rv; } ! if (*recv != '+') { ! ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, "invalid password %s", ! recv); apr_socket_close(sock); return APR_EGENERAL; } ! recvlen = RECVLEN; ! line = apr_psprintf(pool, "QUIT\r\n"); ! rv = send_pop_command(r, sock, line, recv, &recvlen); ! rv = apr_socket_close(sock); ! if (rv != APR_SUCCESS) { ! ap_log_rerror(APLOG_MARK, APLOG_ERR, rv, r, "apr_socket_close"); return rv; ! } return APR_SUCCESS; *************** *** 259,281 **** static authn_status check_pop3_pw(request_rec * r, const char *user, ! const char *password) { apr_status_t pop3_ret; pop_auth_config_rec *conf = ap_get_module_config(r->per_dir_config, ! &authn_pop3_module); ! int timeout = 20; ! pop3_ret = pop_auth( r, ! user, ! password, ! conf->serverhostname, ! conf->port, ! timeout); ! if (pop3_ret != APR_SUCCESS ) { ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, ! "POP user %s authentication failure for \"%s\": " ! "Password Mismatch", ! r->user, r->uri ); } else { --- 263,280 ---- static authn_status check_pop3_pw(request_rec * r, const char *user, ! const char *password) { apr_status_t pop3_ret; pop_auth_config_rec *conf = ap_get_module_config(r->per_dir_config, ! &authn_pop3_module); ! apr_interval_time_t timeout = apr_time_from_sec(2); ! pop3_ret = pop_auth(r, ! user, password, conf->serverhostname, conf->port, timeout); ! if (pop3_ret != APR_SUCCESS) { ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, ! "POP user %s authentication failure for \"%s\": " ! "Password Mismatch", r->user, r->uri); } else { *************** *** 288,295 **** static authn_status get_pop3_realm_hash(request_rec * r, const char *user, ! const char *realm, char **rethash) { ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, ! "[mod_authn_pop3.c] - Digest Authentication with authn_pop3 is not possible"); return AUTH_DENIED; --- 287,294 ---- static authn_status get_pop3_realm_hash(request_rec * r, const char *user, ! const char *realm, char **rethash) { ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, ! "[mod_authn_pop3.c] - Digest Authentication with authn_pop3 is not possible"); return AUTH_DENIED; *************** *** 301,320 **** }; ! static void register_hooks(apr_pool_t *p) { ap_register_provider(p, AUTHN_PROVIDER_GROUP, "pop3", "0", ! &authn_pop3_provider); } ! module AP_MODULE_DECLARE_DATA authn_pop3_module = ! { STANDARD20_MODULE_STUFF, ! create_authn_pop3_dir_config, /* dir config creater */ NULL, /* dir merger --- default is to override */ NULL, /* server config */ NULL, /* merge server config */ ! authn_pop3_cmds, /* command apr_table_t */ register_hooks /* register hooks */ }; - --- 300,317 ---- }; ! static void register_hooks(apr_pool_t * p) { ap_register_provider(p, AUTHN_PROVIDER_GROUP, "pop3", "0", ! &authn_pop3_provider); } ! module AP_MODULE_DECLARE_DATA authn_pop3_module = { STANDARD20_MODULE_STUFF, ! create_authn_pop3_dir_config, /* dir config creater */ NULL, /* dir merger --- default is to override */ NULL, /* server config */ NULL, /* merge server config */ ! authn_pop3_cmds, /* command apr_table_t */ register_hooks /* register hooks */ }; |