From 634aeeb9d58b01f9de6632a014a063ef0c4cf31e Mon Sep 17 00:00:00 2001 From: Chuck Miller Date: Fri, 25 Dec 2009 05:00:31 -0500 Subject: Used the "indent" C formatting program from GNU to do some clean ups The command options used was: -nbad -bap -sc -bl -blf -bli0 -cli4 -cbi0 -di5 -nbc -bls -ip2 -nut -ts4 -bap -i4 -sob -npsl --- src/webserver/generate.c | 67 ++++++------- src/webserver/htmlstyle.c | 64 ++++++------ src/webserver/logs.c | 8 +- src/webserver/main.c | 209 ++++++++++++++++++++------------------- src/webserver/pages/about.c | 6 +- src/webserver/pages/notdone.c | 7 +- src/webserver/pages/sample.c | 34 +++---- src/webserver/parse.c | 225 +++++++++++++++++++++--------------------- 8 files changed, 305 insertions(+), 315 deletions(-) (limited to 'src/webserver') diff --git a/src/webserver/generate.c b/src/webserver/generate.c index ad050db..1fed224 100644 --- a/src/webserver/generate.c +++ b/src/webserver/generate.c @@ -1,38 +1,35 @@ -void generate_page(char password[25], int sock_in, char *query, char *ip) +void generate_page (char password[25], int sock_in, char *query, char *ip) { - char *page = get_param(query, 0); - char *ppass = get_param(query, "password"); - - - if ( (ppass == 0) || (strcmp(password, ppass) != 0) ) - { - web_send(sock_in, html_header("Enter your password")); - web_send(sock_in, "

NOT LOGGED IN!

\n"); - web_send(sock_in, "Enter your password:
\n\n"); - web_send(sock_in, "\n"); - } - else - { - - - //To make this simple, we will have a bunch of if statements - //that then shoot out data off into functions. - - - //The 'index' - if ( strcmp(page, "/") == 0 ) - generate_notdone(sock_in, query, ip); - - - //About page: - if ( strcmp(page, "/about.html") == 0 ) - generate_about(sock_in, query, ip); - - - //Test page: - if ( strcmp(page, "/testing/") == 0 ) - generate_sample(sock_in, query, ip); - - } + char *page = get_param (query, 0); + char *ppass = get_param (query, "password"); + + if ((ppass == 0) || (strcmp (password, ppass) != 0)) + { + web_send (sock_in, html_header ("Enter your password")); + web_send (sock_in, + "

NOT LOGGED IN!

\n"); + web_send (sock_in, + "Enter your password:
\n\n"); + web_send (sock_in, "\n"); + } + else + { + + //To make this simple, we will have a bunch of if statements + //that then shoot out data off into functions. + + //The 'index' + if (strcmp (page, "/") == 0) + generate_notdone (sock_in, query, ip); + + //About page: + if (strcmp (page, "/about.html") == 0) + generate_about (sock_in, query, ip); + + //Test page: + if (strcmp (page, "/testing/") == 0) + generate_sample (sock_in, query, ip); + + } } diff --git a/src/webserver/htmlstyle.c b/src/webserver/htmlstyle.c index c3a4b92..3007a24 100644 --- a/src/webserver/htmlstyle.c +++ b/src/webserver/htmlstyle.c @@ -1,51 +1,45 @@ char output[10000]; -char *html_header(char *title) +char *html_header (char *title) { - memset(output, 0x0, 10000); - char *text = "\n" - "
\n" - "\n" - "
\n" - "\"Athena\"\n" - "
\n" - "
\n"; - "\n" - "
" - "
" - "\n" - "To the Forum
\n" - "\n" + memset (output, 0x0, 10000); + char *text = + "\n" + "
" "
\n" + "\n" + "
\n" + "\"Athena\"\n" + "
\n" + "
\n"; + "\n" + "
" + "
" + "\n" + "To the Forum
\n" + "\n" "" + "Athena « Portal »
\n" + "cellspacing=\"0\" bgcolor=\"#ffffff\" align=\"center\">\n" "
\n" - "Athena « Portal »
\n"; - sprintf(output, "%s\n%s\n", title, text); + sprintf (output, "%s\n%s\n", title, text); - return output; + return output; } - - -char *html_start_form(char *location, char *action) +char *html_start_form (char *location, char *action) { - memset(output, 0x0, 10000); - sprintf(output, "", location, action); - return output; - + memset (output, 0x0, 10000); + sprintf (output, "", location, action); + return output; } - -char *html_end_forum(void) +char *html_end_forum (void) { - return "
"; + return ""; } - - - diff --git a/src/webserver/logs.c b/src/webserver/logs.c index 405b488..67bf55e 100644 --- a/src/webserver/logs.c +++ b/src/webserver/logs.c @@ -1,8 +1,8 @@ #include -void log_visit(char *query, char *ip) +void log_visit (char *query, char *ip) { - time_t timer; - timer=time(NULL); - printf("%s - \"%s\" - %s", ip, query, asctime(localtime(&timer))); + time_t timer; + timer = time (NULL); + printf ("%s - \"%s\" - %s", ip, query, asctime (localtime (&timer))); } diff --git a/src/webserver/main.c b/src/webserver/main.c index 5936255..0e227d3 100644 --- a/src/webserver/main.c +++ b/src/webserver/main.c @@ -15,7 +15,6 @@ * * ***************************************************************************/ - #include #include #include @@ -32,111 +31,115 @@ char *header = "\n"; char recvin[500], password[25]; -int s_port; +int s_port; -void sigchld_handler(int s) +void sigchld_handler (int s) { - while(wait(NULL) > 0); + while (wait (NULL) > 0); } -int main(int argc, char **argv) +int main (int argc, char **argv) { - if (argc < 3) - { - printf("eAthena Web Server\n"); - printf("usage: %s [password] [port]\n", argv[0]); - exit(0); - } - - s_port = atoi(argv[2]); - - if ((s_port < 1) || (s_port > 65534)) - { - printf("Error: The port you choose is not valid port.\n"); - exit(0); - } - - if (strlen(argv[1]) > 25) - { - printf("Error: Your password is too long.\n"); - printf("It must be shorter than 25 characters.\n"); - exit(0); - } - - memset(password, 0x0, 25); - memcpy(password, argv[1], strlen(argv[1])); - - int sockfd, new_fd; - struct sockaddr_in my_addr; - struct sockaddr_in their_addr; - int sin_size; - - struct sigaction sa; - - int yes=1; - - if ((sockfd = socket(AF_INET, SOCK_STREAM,0)) == -1) - { - perror("Darn, this is broken."); - exit(0); - } - - if (setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, &yes, sizeof(int)) == -1) - { - perror("Error... :-("); - } - - //Now we know we have a working socket. :-) - - my_addr.sin_family = AF_INET; - my_addr.sin_port = htons(s_port); - my_addr.sin_addr.s_addr = INADDR_ANY; - memset(&(my_addr.sin_zero), '\0', 8); - - if ( bind(sockfd, (struct sockaddr *)&my_addr, sizeof(struct sockaddr)) == -1) - { - perror("can not bind to this port"); - exit(0); - } - - if ( listen(sockfd, BLOG) == -1) - { - perror("can not listen on port"); - exit(0); - } - - sa.sa_handler = sigchld_handler; - - sigemptyset(&sa.sa_mask); - sa.sa_flags = SA_RESTART; - - if (sigaction(SIGCHLD, &sa, NULL) == -1) - { - perror("sigaction sucks"); - exit(0); - } - - printf("The eAthena webserver is up and listening on port %i.\n", s_port); - - while(1) - { - sin_size = sizeof(struct sockaddr_in); - new_fd = accept(sockfd, (struct sockaddr *)&their_addr, &sin_size); - - if (!fork()) - { - close(sockfd); - memset(recvin, 0x0, 500); - recv(new_fd, recvin, 500, 0); - send(new_fd, header, strlen(header), 0); - generate_page(password, new_fd, get_query(recvin), inet_ntoa(their_addr.sin_addr)); - log_visit(get_query(recvin), inet_ntoa(their_addr.sin_addr)); - - close(new_fd); - exit(0); - } - close(new_fd); - } - - return 0; + if (argc < 3) + { + printf ("eAthena Web Server\n"); + printf ("usage: %s [password] [port]\n", argv[0]); + exit (0); + } + + s_port = atoi (argv[2]); + + if ((s_port < 1) || (s_port > 65534)) + { + printf ("Error: The port you choose is not valid port.\n"); + exit (0); + } + + if (strlen (argv[1]) > 25) + { + printf ("Error: Your password is too long.\n"); + printf ("It must be shorter than 25 characters.\n"); + exit (0); + } + + memset (password, 0x0, 25); + memcpy (password, argv[1], strlen (argv[1])); + + int sockfd, new_fd; + struct sockaddr_in my_addr; + struct sockaddr_in their_addr; + int sin_size; + + struct sigaction sa; + + int yes = 1; + + if ((sockfd = socket (AF_INET, SOCK_STREAM, 0)) == -1) + { + perror ("Darn, this is broken."); + exit (0); + } + + if (setsockopt (sockfd, SOL_SOCKET, SO_REUSEADDR, &yes, sizeof (int)) == + -1) + { + perror ("Error... :-("); + } + + //Now we know we have a working socket. :-) + + my_addr.sin_family = AF_INET; + my_addr.sin_port = htons (s_port); + my_addr.sin_addr.s_addr = INADDR_ANY; + memset (&(my_addr.sin_zero), '\0', 8); + + if (bind (sockfd, (struct sockaddr *) &my_addr, sizeof (struct sockaddr)) + == -1) + { + perror ("can not bind to this port"); + exit (0); + } + + if (listen (sockfd, BLOG) == -1) + { + perror ("can not listen on port"); + exit (0); + } + + sa.sa_handler = sigchld_handler; + + sigemptyset (&sa.sa_mask); + sa.sa_flags = SA_RESTART; + + if (sigaction (SIGCHLD, &sa, NULL) == -1) + { + perror ("sigaction sucks"); + exit (0); + } + + printf ("The eAthena webserver is up and listening on port %i.\n", + s_port); + + while (1) + { + sin_size = sizeof (struct sockaddr_in); + new_fd = accept (sockfd, (struct sockaddr *) &their_addr, &sin_size); + + if (!fork ()) + { + close (sockfd); + memset (recvin, 0x0, 500); + recv (new_fd, recvin, 500, 0); + send (new_fd, header, strlen (header), 0); + generate_page (password, new_fd, get_query (recvin), + inet_ntoa (their_addr.sin_addr)); + log_visit (get_query (recvin), inet_ntoa (their_addr.sin_addr)); + + close (new_fd); + exit (0); + } + close (new_fd); + } + + return 0; } diff --git a/src/webserver/pages/about.c b/src/webserver/pages/about.c index 2b0002a..b548da9 100644 --- a/src/webserver/pages/about.c +++ b/src/webserver/pages/about.c @@ -1,6 +1,6 @@ -void generate_about(int sock_in, char *query, char *ip) +void generate_about (int sock_in, char *query, char *ip) { //printf("%s", html_header("About")); - web_send(sock_in, html_header("About")); - web_send(sock_in, "
eAthena Web Server!
\n"); + web_send (sock_in, html_header ("About")); + web_send (sock_in, "
eAthena Web Server!
\n"); } diff --git a/src/webserver/pages/notdone.c b/src/webserver/pages/notdone.c index a6492e3..1fcd44b 100644 --- a/src/webserver/pages/notdone.c +++ b/src/webserver/pages/notdone.c @@ -1,5 +1,6 @@ -void generate_notdone(int sock_in, char *query, char *ip) +void generate_notdone (int sock_in, char *query, char *ip) { - web_send(sock_in, "Not here!\n"); - web_send(sock_in, "

This page/feature is not done yet.
\n

"); + web_send (sock_in, "Not here!\n"); + web_send (sock_in, + "

This page/feature is not done yet.
\n

"); } diff --git a/src/webserver/pages/sample.c b/src/webserver/pages/sample.c index be900a1..6a33dc0 100644 --- a/src/webserver/pages/sample.c +++ b/src/webserver/pages/sample.c @@ -1,24 +1,22 @@ - -void generate_sample(int sock_in, char *query, char *ip) +void generate_sample (int sock_in, char *query, char *ip) { - char *name = get_param(query, "name"); - - web_send(sock_in, "SAMPLE\n"); + char *name = get_param (query, "name"); + web_send (sock_in, "SAMPLE\n"); - //If a name was not entered... - if ( name == '\0' ) - { - web_send(sock_in, "
\n"); - web_send(sock_in, "\n"); - web_send(sock_in, "\n"); - } - else - { - web_send(sock_in, "Your name is: "); - web_send(sock_in, get_param(query, "name")); - } -printf("OK!\n"); + //If a name was not entered... + if (name == '\0') + { + web_send (sock_in, "\n"); + web_send (sock_in, "\n"); + web_send (sock_in, "\n"); + } + else + { + web_send (sock_in, "Your name is: "); + web_send (sock_in, get_param (query, "name")); + } + printf ("OK!\n"); } diff --git a/src/webserver/parse.c b/src/webserver/parse.c index 8e54a81..66ef43b 100644 --- a/src/webserver/parse.c +++ b/src/webserver/parse.c @@ -5,131 +5,128 @@ char rdata[500]; char param_n[500]; char param_d[500]; - -char *get_query(char *inquery) +char *get_query (char *inquery) { - memset(filtered_query, 0x0, 2000); - sscanf(inquery, "GET %s %[$]", filtered_query); - return(filtered_query); + memset (filtered_query, 0x0, 2000); + sscanf (inquery, "GET %s %[$]", filtered_query); + return (filtered_query); } -void web_send(int sockin, char *in_data) +void web_send (int sockin, char *in_data) { - send(sockin, in_data, strlen(in_data), 0); + send (sockin, in_data, strlen (in_data), 0); } - //THIS IS BAD CODE BE CAREFULL WITH IT! //Watch out for buffer overflow... //When using please make sure to check the string size. //Also note: //I take no pride in this code, it is a really bad way of doing this... -char *get_param(char in_string[500], char swhat[500]) +char *get_param (char in_string[500], char swhat[500]) { - int i = 0; - int marker, iswitch, pint, dint; - char flux[500]; - memset(flux, 0x0, 500); - - //Get the path of out "page" - if (swhat == 0) - { - //while i is not equal to array size - while (i != 500) - { - //if there is a question mark, halt! - if (in_string[i] == '?') - { - i = 499; - } - else - rdata[i] = in_string[i]; - - i++; - } - return rdata; - } - else //so, we want a param... - { - //calculate where param begins - while (i != 500) - { - if (in_string[i] == '?') - { - marker = i + 1; - i = 499; - } - i++; - } - - i = 0; - - //keep morons from trying to crash this - if ((marker > 500)||(marker < 1)) - marker = 500; - - while(marker != 500) - { - if ((in_string[marker] != '&') && (in_string[marker] != '\0')) - { - flux[i] = in_string[marker]; - i++; - } - else - { - - //we have a param, now we must dig through it - - //clear temp vars - memset(param_n, 0x0, 500); - memset(param_d, 0x0, 500); - iswitch = 0; - pint = 0; - dint = 0; - i = 0; - - //split result into param_n and param_d - while(i != 500) - { - if ( (flux[i] != '=') && (flux[i] != '\0') ) - { - if (iswitch == 0) - { - param_n[pint] = flux[i]; - pint++; - } - else - { - param_d[dint] = flux[i]; - dint++; - } - } - else - { - iswitch = 1; - } - if (flux[i] == '\0') - i = 499; - - i++; - } - - if ( strcmp(param_n, swhat) == 0 ) - { - return param_d; - } - - i = 0; - } - - if (in_string[marker] == '\0') - { - marker = 499; - } - marker++; - } - return 0; - } + int i = 0; + int marker, iswitch, pint, dint; + char flux[500]; + memset (flux, 0x0, 500); + + //Get the path of out "page" + if (swhat == 0) + { + //while i is not equal to array size + while (i != 500) + { + //if there is a question mark, halt! + if (in_string[i] == '?') + { + i = 499; + } + else + rdata[i] = in_string[i]; + + i++; + } + return rdata; + } + else //so, we want a param... + { + //calculate where param begins + while (i != 500) + { + if (in_string[i] == '?') + { + marker = i + 1; + i = 499; + } + i++; + } + + i = 0; + + //keep morons from trying to crash this + if ((marker > 500) || (marker < 1)) + marker = 500; + + while (marker != 500) + { + if ((in_string[marker] != '&') && (in_string[marker] != '\0')) + { + flux[i] = in_string[marker]; + i++; + } + else + { + + //we have a param, now we must dig through it + + //clear temp vars + memset (param_n, 0x0, 500); + memset (param_d, 0x0, 500); + iswitch = 0; + pint = 0; + dint = 0; + i = 0; + + //split result into param_n and param_d + while (i != 500) + { + if ((flux[i] != '=') && (flux[i] != '\0')) + { + if (iswitch == 0) + { + param_n[pint] = flux[i]; + pint++; + } + else + { + param_d[dint] = flux[i]; + dint++; + } + } + else + { + iswitch = 1; + } + if (flux[i] == '\0') + i = 499; + + i++; + } + + if (strcmp (param_n, swhat) == 0) + { + return param_d; + } + + i = 0; + } + + if (in_string[marker] == '\0') + { + marker = 499; + } + marker++; + } + return 0; + } } - -- cgit v1.2.3-60-g2f50