static void php_ns_sapi_register_variables(zval *track_vars_array) { int i; char buf[NS_BUF_SIZE + 1]; char *tmp; for(i = 0; i < Ns_SetSize(NSG(conn->headers)); i++) { char *key = Ns_SetKey(NSG(conn->headers), i); char *value = Ns_SetValue(NSG(conn->headers), i); char *p; char c; snprintf(buf, NS_BUF_SIZE, "HTTP_%s", key); for(p = buf + 5; (c = *p); p++) { c = toupper(c); if(c < 'A' || c > 'Z') { c = '_'; } *p = c; } ADD_STRINGX(buf, value); } snprintf(buf, NS_BUF_SIZE, "%s/%s", Ns_InfoServerName(), Ns_InfoServerVersion()); ADD_STRING("SERVER_SOFTWARE"); snprintf(buf, NS_BUF_SIZE, "HTTP/%1.1f", NSG(conn)->request->version); ADD_STRING("SERVER_PROTOCOL"); ADD_STRINGX("REQUEST_METHOD", NSG(conn)->request->method); if(NSG(conn)->request->query) ADD_STRINGX("QUERY_STRING", NSG(conn)->request->query); ADD_STRINGX("SERVER_BUILDDATE", Ns_InfoBuildDate()); ADD_STRINGX("REMOTE_ADDR", Ns_ConnPeer(NSG(conn))); snprintf(buf, NS_BUF_SIZE, "%d", Ns_ConnPeerPort(NSG(conn))); ADD_STRING("REMOTE_PORT"); snprintf(buf, NS_BUF_SIZE, "%d", Ns_ConnPort(NSG(conn))); ADD_STRING("SERVER_PORT"); tmp = Ns_ConnHost(NSG(conn)); if (tmp) ADD_STRINGX("SERVER_NAME", tmp); ADD_STRINGX("PATH_TRANSLATED", SG(request_info).path_translated); ADD_STRINGX("REQUEST_URI", SG(request_info).request_uri); ADD_STRINGX("PHP_SELF", SG(request_info).request_uri); ADD_STRINGX("GATEWAY_INTERFACE", "CGI/1.1"); snprintf(buf, NS_BUF_SIZE, "%d", Ns_InfoBootTime()); ADD_STRING("SERVER_BOOTTIME"); }
void NsAppendConn(Tcl_DString *dsPtr, Conn *connPtr, char *state) { Ns_Time now, diff; Ns_GetTime(&now); Ns_DiffTime(&now, &connPtr->times.queue, &diff); Tcl_DStringStartSublist(dsPtr); Ns_DStringPrintf(dsPtr, "%d", connPtr->id); Tcl_DStringAppendElement(dsPtr, Ns_ConnPeer((Ns_Conn *) connPtr)); Tcl_DStringAppendElement(dsPtr, state); NsAppendRequest(dsPtr, connPtr->request); Ns_DStringPrintf(dsPtr, " %ld.%ld %d", diff.sec, diff.usec, connPtr->nContentSent); Tcl_DStringEndSublist(dsPtr); }