Diff for /embedaddon/lighttpd/src/server.c between versions 1.1.1.1 and 1.1.1.2

version 1.1.1.1, 2013/10/14 10:32:48 version 1.1.1.2, 2014/06/15 20:20:06
Line 172  static server *server_init(void) { Line 172  static server *server_init(void) {
         FILE *frandom = NULL;          FILE *frandom = NULL;
   
         server *srv = calloc(1, sizeof(*srv));          server *srv = calloc(1, sizeof(*srv));
        assert(srv);        force_assert(srv);
 #define CLEAN(x) \  #define CLEAN(x) \
         srv->x = buffer_init();          srv->x = buffer_init();
   
Line 230  static server *server_init(void) { Line 230  static server *server_init(void) {
         srv->startup_ts = srv->cur_ts;          srv->startup_ts = srv->cur_ts;
   
         srv->conns = calloc(1, sizeof(*srv->conns));          srv->conns = calloc(1, sizeof(*srv->conns));
        assert(srv->conns);        force_assert(srv->conns);
   
         srv->joblist = calloc(1, sizeof(*srv->joblist));          srv->joblist = calloc(1, sizeof(*srv->joblist));
        assert(srv->joblist);        force_assert(srv->joblist);
   
         srv->fdwaitqueue = calloc(1, sizeof(*srv->fdwaitqueue));          srv->fdwaitqueue = calloc(1, sizeof(*srv->fdwaitqueue));
        assert(srv->fdwaitqueue);        force_assert(srv->fdwaitqueue);
   
         srv->srvconf.modules = array_init();          srv->srvconf.modules = array_init();
         srv->srvconf.modules_dir = buffer_init_string(LIBRARY_DIR);          srv->srvconf.modules_dir = buffer_init_string(LIBRARY_DIR);
Line 314  static void server_free(server *srv) { Line 314  static void server_free(server *srv) {
                         buffer_free(s->ssl_verifyclient_username);                          buffer_free(s->ssl_verifyclient_username);
 #ifdef USE_OPENSSL  #ifdef USE_OPENSSL
                         SSL_CTX_free(s->ssl_ctx);                          SSL_CTX_free(s->ssl_ctx);
                           EVP_PKEY_free(s->ssl_pemfile_pkey);
                           X509_free(s->ssl_pemfile_x509);
                           if (NULL != s->ssl_ca_file_cert_names) sk_X509_NAME_pop_free(s->ssl_ca_file_cert_names, X509_NAME_free);
 #endif  #endif
                         free(s);                          free(s);
                 }                  }
Line 817  int main (int argc, char **argv) { Line 820  int main (int argc, char **argv) {
                  * to /etc/group                   * to /etc/group
                  * */                   * */
                 if (NULL != grp) {                  if (NULL != grp) {
                        setgid(grp->gr_gid);                        if (-1 == setgid(grp->gr_gid)) {
                        setgroups(0, NULL);                                log_error_write(srv, __FILE__, __LINE__, "ss", "setgid failed: ", strerror(errno));
                                 return -1;
                         }
                         if (-1 == setgroups(0, NULL)) {
                                 log_error_write(srv, __FILE__, __LINE__, "ss", "setgroups failed: ", strerror(errno));
                                 return -1;
                         }
                         if (srv->srvconf.username->used) {                          if (srv->srvconf.username->used) {
                                 initgroups(srv->srvconf.username->ptr, grp->gr_gid);                                  initgroups(srv->srvconf.username->ptr, grp->gr_gid);
                         }                          }
Line 841  int main (int argc, char **argv) { Line 850  int main (int argc, char **argv) {
 #ifdef HAVE_PWD_H  #ifdef HAVE_PWD_H
                 /* drop root privs */                  /* drop root privs */
                 if (NULL != pwd) {                  if (NULL != pwd) {
                        setuid(pwd->pw_uid);                        if (-1 == setuid(pwd->pw_uid)) {
                                 log_error_write(srv, __FILE__, __LINE__, "ss", "setuid failed: ", strerror(errno));
                                 return -1;
                         }
                 }                  }
 #endif  #endif
 #if defined(HAVE_SYS_PRCTL_H) && defined(PR_SET_DUMPABLE)  #if defined(HAVE_SYS_PRCTL_H) && defined(PR_SET_DUMPABLE)
Line 989  int main (int argc, char **argv) { Line 1001  int main (int argc, char **argv) {
         if (pid_fd != -1) {          if (pid_fd != -1) {
                 buffer_copy_long(srv->tmp_buf, getpid());                  buffer_copy_long(srv->tmp_buf, getpid());
                 buffer_append_string_len(srv->tmp_buf, CONST_STR_LEN("\n"));                  buffer_append_string_len(srv->tmp_buf, CONST_STR_LEN("\n"));
                   force_assert(srv->tmp_buf->used > 0);
                 write(pid_fd, srv->tmp_buf->ptr, srv->tmp_buf->used - 1);                  write(pid_fd, srv->tmp_buf->ptr, srv->tmp_buf->used - 1);
                 close(pid_fd);                  close(pid_fd);
                 pid_fd = -1;                  pid_fd = -1;
Line 1170  int main (int argc, char **argv) { Line 1183  int main (int argc, char **argv) {
 #ifdef HAVE_FAM_H  #ifdef HAVE_FAM_H
         /* setup FAM */          /* setup FAM */
         if (srv->srvconf.stat_cache_engine == STAT_CACHE_ENGINE_FAM) {          if (srv->srvconf.stat_cache_engine == STAT_CACHE_ENGINE_FAM) {
                if (0 != FAMOpen2(srv->stat_cache->fam, "lighttpd")) {                if (0 != FAMOpen2(&srv->stat_cache->fam, "lighttpd")) {
                         log_error_write(srv, __FILE__, __LINE__, "s",                          log_error_write(srv, __FILE__, __LINE__, "s",
                                          "could not open a fam connection, dieing.");                                           "could not open a fam connection, dieing.");
                         return -1;                          return -1;
                 }                  }
 #ifdef HAVE_FAMNOEXISTS  #ifdef HAVE_FAMNOEXISTS
                FAMNoExists(srv->stat_cache->fam);                FAMNoExists(&srv->stat_cache->fam);
 #endif  #endif
   
                srv->stat_cache->fam_fcce_ndx = -1;                fdevent_register(srv->ev, FAMCONNECTION_GETFD(&srv->stat_cache->fam), stat_cache_handle_fdevent, NULL);
                fdevent_register(srv->ev, FAMCONNECTION_GETFD(srv->stat_cache->fam), stat_cache_handle_fdevent, NULL);                fdevent_event_set(srv->ev, &(srv->stat_cache->fam_fcce_ndx), FAMCONNECTION_GETFD(&srv->stat_cache->fam), FDEVENT_IN);
                fdevent_event_set(srv->ev, &(srv->stat_cache->fam_fcce_ndx), FAMCONNECTION_GETFD(srv->stat_cache->fam), FDEVENT_IN); 
         }          }
 #endif  #endif
   

Removed from v.1.1.1.1  
changed lines
  Added in v.1.1.1.2


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>