NS_IMETHODIMP nsEmbedChromeRegistry::Canonify(nsIURI* aChromeURI) { #if 1 // Canonicalize 'chrome:' URLs. We'll take any 'chrome:' URL // without a filename, and change it to a URL -with- a filename; // e.g., "chrome://navigator/content" to // "chrome://navigator/content/navigator.xul". if (! aChromeURI) return NS_ERROR_NULL_POINTER; PRBool modified = PR_TRUE; // default is we do canonification nsCAutoString package, provider, file; nsresult rv; rv = SplitURL(aChromeURI, package, provider, file, &modified); if (NS_FAILED(rv)) return rv; if (!modified) return NS_OK; nsCAutoString canonical( kChromePrefix ); canonical += package; canonical += "/"; canonical += provider; canonical += "/"; canonical += file; return aChromeURI->SetSpec(canonical); #else return NS_OK; #endif }
int HttpClient::getUrl(const char* url) { if(!url || !*url || !m_times) return 0; StringBuffer protocol, user, passwd, port, path; m_host.clear(); SplitURL(url, protocol, user, passwd, m_host, port, path); if(port.length() > 0) m_port = atoi(port.str()); else { if(protocol.length() > 0 && stricmp(protocol.str(), "https") == 0) m_port = 443; else m_port = 80; } if(stricmp(protocol.str(), "HTTPS") == 0) m_use_ssl = true; if(m_use_ssl) { #if USE_OPENSSL if(m_ssctx.get() == NULL) m_ssctx.setown(createSecureSocketContext(ClientSocket)); #else throw MakeStringException(-1, "HttpClient: failure to create SSL socket - OpenSSL not enabled in build"); #endif } StringBuffer request; request.appendf("GET %s HTTP/1.0\r\n", path.str()); request.append("Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-shockwave-flash, */*\r\n"); request.append("Accept-Language: en-us\r\n"); //request.append("Accept-Encoding: gzip, deflate\r\n"); request.append("User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)\r\n"); request.append("Host: ").append(m_host.str()); if(m_port != 80) request.appendf(":%d", m_port); request.append("\r\n"); if(user.length() > 0) { StringBuffer auth, abuf; abuf.appendf("%s:%s", user.str(), passwd.str()); JBASE64_Encode(abuf.str(), abuf.length(), auth); request.appendf("Authorization: Basic %s\r\n", auth.str()); } request.append("\r\n"); return sendRequest(request); }
int HTTP::Request_Post(const char* url, const void* data, int size, float timeOut) { // Create new request entry, and add it to list of request entries Request* request=new Request; currentRequestHandle_++; request->handle=currentRequestHandle_; request->usingGetMethod=false; request->status=Status_Connecting; request->timeOut_=timeOut; request->elapsedTime_=0; request->connection=0; request->requestString=0; request->contentLength=0; request->resource=0; request->postData.Write(static_cast<const char*>(data),size); requests_.Add(request); // Make sure URL starts with http:// if (StrNICmp(url,"http://",7)!=0) { request->status=Status_Failed; return request->handle; } // Split URL string char* address=0; char* port=0; char* requestString=0; SplitURL(url,address,port,requestString); // Create connection if (Platform::GetPlatform_Network()) { request->connection=Platform::GetPlatform_Network()->CreateClient(Platform_Network::ConnectionMode_TCP,address,StringToInt(port)); } if (!request->connection->Connect()) { request->status=Status_Failed; } // Store request string request->requestString=StrDup(requestString); // Clean up after SplitURL delete[] requestString; delete[] port; delete[] address; // Return handle to this request return request->handle; }
int TcpTransport::Connect(const std::string &strServerURL) { if (m_state == CLIENT_STATE_UNINIT) { return CLIENT_ERROR_INIT; } if (IsConnected()) { if (strServerURL.compare(m_serverURL) == 0) { return CLIENT_ERROR_SUCCESS; } else { Close(); } } short port; std::string strAddr; if (!SplitURL(strServerURL, strAddr, port)) { return CLIENT_ERROR_INVALID_URL; } struct sockaddr_in sa; sa.sin_family = AF_INET; sa.sin_port = htons(port); sa.sin_addr.s_addr = inet_addr(strAddr.c_str()); m_sfd = (int)socket(AF_INET, SOCK_STREAM, 0); if (SetTcpNoDelay(m_sfd) == -1) { closesocket(m_sfd); return CLIENT_ERROR_CONNECT; } // handshake SSL. if (MakeSocketNonblocking(m_sfd) == -1) { return CLIENT_ERROR_CONNECT; } if (!enableSSL && connect(m_sfd,(struct sockaddr*)&sa, sizeof(sockaddr)) == -1) { int err = NET_ERROR; if (err == WSAEWOULDBLOCK || err == WSAEINPROGRESS) { fd_set wfd; fd_set exceptfds; FD_ZERO(&wfd); FD_ZERO(&exceptfds); FD_SET(m_sfd,&wfd); FD_SET(m_sfd, &exceptfds); struct timeval tv = {5, 0}; if (select(FD_SETSIZE, NULL, &wfd, &exceptfds, &tv) == -1) { closesocket(m_sfd); return CLIENT_ERROR_CONNECT; } if (!FD_ISSET(m_sfd,&wfd)) { closesocket(m_sfd); return CLIENT_ERROR_CONNECT; } #ifndef WIN32 int opterr = 0; socklen_t errlen = sizeof(opterr); if (getsockopt(m_sfd,SOL_SOCKET, SO_ERROR, &opterr, &errlen) == -1) { closesocket(m_sfd); return CLIENT_ERROR_CONNECT; } if (opterr) { closesocket(m_sfd); return CLIENT_ERROR_CONNECT; } #endif } else { return CLIENT_ERROR_CONNECT; } } m_serverURL = strServerURL; m_state = CLIENT_STATE_CONNECTED; m_recvBufUsed = 0; return CLIENT_ERROR_SUCCESS; }
int main(int argc,char **argv) { URL *Url; URL **list,*refresh; int j; if(argc==1) {fprintf(stderr,"usage: test-doc URL < contents-of-url\n");return(1);} StderrLevel=ExtraDebug; InitErrorHandler("test-doc",0,1); InitConfigurationFile("./wwwoffle.conf"); init_io(STDERR_FILENO); if(ReadConfigurationFile(STDERR_FILENO)) PrintMessage(Fatal,"Error in configuration file 'wwwoffle.conf'."); finish_io(STDERR_FILENO); Url=SplitURL(argv[1]); init_io(0); ParseDocument(0,Url,1); if((refresh=GetReference(RefMetaRefresh))) printf("Refresh = %s\n",refresh->file); if((list=GetReferences(RefStyleSheet))) for(j=0;list[j];j++) printf("StyleSheet = %s\n",list[j]->file); if((list=GetReferences(RefImage))) for(j=0;list[j];j++) printf("Image = %s\n",list[j]->file); if((list=GetReferences(RefFrame))) for(j=0;list[j];j++) printf("Frame = %s\n",list[j]->file); if((list=GetReferences(RefScript))) for(j=0;list[j];j++) printf("Script = %s\n",list[j]->file); if((list=GetReferences(RefObject))) for(j=0;list[j];j++) printf("Object = %s\n",list[j]->file); if((list=GetReferences(RefInlineObject))) for(j=0;list[j];j++) printf("InlineObject = %s\n",list[j]->file); if((list=GetReferences(RefLink))) for(j=0;list[j];j++) printf("Link = %s\n",list[j]->file); FreeURL(Url); finish_io(0); return(0); }
int HttpClient::sendSoapRequest(const char* url, const char* soapaction, const char* infile) { if(!url || !*url || !infile || !*infile) return 0; StringBuffer protocol, user, passwd, port, path; m_host.clear(); SplitURL(url, protocol, user, passwd, m_host, port, path); if(port.length() > 0) m_port = atoi(port.str()); else { if(protocol.length() > 0 && stricmp(protocol.str(), "https") == 0) m_port = 443; else m_port = 80; } if(stricmp(protocol.str(), "HTTPS") == 0) m_use_ssl = true; if(m_use_ssl) { #ifdef USE_OPENSSL if(m_ssctx.get() == NULL) m_ssctx.setown(createSecureSocketContext(ClientSocket)); #else throw MakeStringException(-1, "HttpClient: failure to create SSL socket - OpenSSL not enabled in build"); #endif } StringBuffer request; try { request.loadFile(infile, true); } catch(IException* e) { StringBuffer errmsg; printf("\nerror loading file %s - %s", infile, e->errorMessage(errmsg).str()); return -1; } catch(...) { printf("\nerror loading file %s", infile); return -1; } if(request.length() == 0) { printf("input is empty\n"); return -1; } const char* ptr = request.str(); while(*ptr == ' ') ptr++; if(*ptr != '<') { printf("the input should be xml\n"); return -1; } if(strncmp(ptr, "<?xml", 5) != 0 && strncmp(ptr, "<soap:Envelope", 14) != 0) { request.insert(0, "<?xml version=\"1.0\" encoding=\"utf-8\"?><soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:SOAP-ENC=\"http://schemas.xmlsoap.org/soap/encoding/\" xmlns:wsse=\"http://schemas.xmlsoap.org/ws/2002/04/secext\"><soap:Body>"); request.append("</soap:Body></soap:Envelope>"); } StringBuffer headers; headers.appendf("POST %s HTTP/1.1\r\n", path.str()); headers.append("Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-shockwave-flash, */*\r\n"); headers.append("Accept-Language: en-us\r\n"); headers.append("Content-Type: text/xml\r\n"); if(soapaction && *soapaction) headers.appendf("SOAPAction: \"%s\"\r\n", soapaction); //headers.append("Accept-Encoding: gzip, deflate\r\n"); headers.append("User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)\r\n"); headers.appendf("Content-Length: %d\r\n", request.length()); headers.append("Host: ").append(m_host.str()); if(m_port != 80) headers.appendf(":%d", m_port); headers.append("\r\n"); if(user.length() > 0) { StringBuffer auth, abuf; abuf.appendf("%s:%s", user.str(), passwd.str()); JBASE64_Encode(abuf.str(), abuf.length(), auth); headers.appendf("Authorization: Basic %s\r\n", auth.str()); } headers.append("\r\n"); request.insert(0, headers.str()); return sendRequest(request); }
static void UpdateList(openfile* p, bool_t Silent, int ListMode) { streamdir DirItem; stream* Stream; int Result; openitem New; LVITEM Item; int No=0; int Pos=0; int State = LVIS_FOCUSED; int Len; const tchar_t* s; bool_t HasHost; if (!p->Multiple || (p->Flags & OPENFLAG_SINGLE)) State |= LVIS_SELECTED; Len = tcslen(p->Path); if (Len && (p->Path[Len-1] == '\\' || p->Path[Len-1] == '/')) p->Path[--Len] = 0; tcscpy_s(p->Base,TSIZEOF(p->Base),p->Path); s = p->Path[0] ? p->Path : T("\\"); AddHistory(p,s); if (!ListMode) return; ++p->InUpdate; WaitBegin(); ShowWindow(p->WndList,SW_HIDE); ClearList(p); Item.mask=LVIF_TEXT|LVIF_IMAGE|LVIF_PARAM; Item.pszText=T(""); Item.cchTextMax=1; Item.iSubItem=0; Stream = GetStream(p->Path,Silent); if (Stream) { s = GetMime(p->Path,NULL,0,&HasHost); if (*s) { Item.iImage=IMG_DIRUP; Item.iItem = No; Item.lParam = 0; ListView_InsertItem(p->WndList,&Item); ListView_SetItemText(p->WndList,No,0,T("..")); ListView_SetItemText(p->WndList,No,1,(tchar_t*)LangStr(OPENFILE_ID,OPENFILE_UP)); ++No; } Result = Stream->EnumDir(Stream,p->Path,p->Exts,*p->CurrentFileType!=-1,&DirItem); if (ListMode==2 && Result == ERR_FILE_NOT_FOUND && UpperPath(p->Path,p->Last,TSIZEOF(p->Last))) { WaitEnd(); --p->InUpdate; p->LastClick = -1; UpdateList(p,Silent,ListMode); return; } if (Result == ERR_NOT_DIRECTORY && !Silent) { New.FileName[0] = 0; New.Ext[0] = 0; New.Image = IMG_FILE; New.Size = 0; Item.lParam = (DWORD)malloc(sizeof(openitem)); if (Item.lParam) { p->Last[0] = 0; Pos = No; State = LVIS_SELECTED; PostMessage(p->Win.Wnd,WM_COMMAND,PLATFORM_OK,0); *(openitem*)Item.lParam = New; Item.iItem = No; Item.iImage = New.Image; ListView_InsertItem(p->WndList,&Item); ++No; } } if (Result == ERR_NONE) Stream->Get(Stream,STREAM_BASE,p->Base,sizeof(p->Base)); while (Result == ERR_NONE) { tchar_t Size[32]; tchar_t Date[32]; int i; for (i=0;i<No;++i) { LVITEM Item; Item.iItem=i; Item.iSubItem = 0; Item.mask=LVIF_PARAM; ListView_GetItem(p->WndList,&Item); if (Item.lParam && tcscmp(((openitem*)Item.lParam)->FileName,DirItem.FileName)==0) break; } if (i==No) { tchar_t DisplayName[MAXPATH]; tcscpy_s(New.FileName,TSIZEOF(New.FileName),DirItem.FileName); New.DisplayName = DirItem.DisplayName[0] != 0; tcscpy_s(DisplayName,TSIZEOF(DisplayName),New.DisplayName?DirItem.DisplayName:DirItem.FileName); Size[0] = 0; Date[0] = 0; if (DirItem.Size < 0) { New.Image = IMG_DIR; New.Size = 0; New.Date = 0; tcscpy_s(New.Ext,TSIZEOF(New.Ext),LangStr(OPENFILE_ID,OPENFILE_DIR)); tcscpy_s(New.Name,TSIZEOF(New.Name),DisplayName); //keep extension } else { switch (DirItem.Type) { case FTYPE_AUDIO: New.Image = IMG_AUDIO; break; case FTYPE_PLAYLIST: New.Image = IMG_PLAYLIST; break; case FTYPE_VIDEO: New.Image = IMG_VIDEO; break; default: New.Image = IMG_FILE; break; } New.Size = DirItem.Size; New.Date = DirItem.Date; SplitURL(DisplayName,NULL,0,NULL,0,New.Name,TSIZEOF(New.Name),New.Ext,TSIZEOF(New.Ext)); tcsupr(New.Ext); if (New.Size >= 0) { if (New.Size < 10000*1024) stprintf_s(Size,TSIZEOF(Size),T("%d KB"),New.Size/1024); else stprintf_s(Size,TSIZEOF(Size),T("%d MB"),New.Size/(1024*1024)); } if (New.Date >= 0) { FILETIME Time; SYSTEMTIME SysTime; Time.dwHighDateTime = (DWORD)(New.Date >> 32); Time.dwLowDateTime = (DWORD)(New.Date); if (FileTimeToSystemTime(&Time,&SysTime)) GetDateFormat(LOCALE_USER_DEFAULT,DATE_SHORTDATE,&SysTime,NULL,Date,TSIZEOF(Date)); } } Item.lParam = (DWORD)malloc(sizeof(openitem)); if (Item.lParam) { *(openitem*)Item.lParam = New; Item.iItem = No; Item.iImage = New.Image; ListView_InsertItem(p->WndList,&Item); ListView_SetItemText(p->WndList,No,0,New.Name); ListView_SetItemText(p->WndList,No,1,New.Ext); ListView_SetItemText(p->WndList,No,2,Size); ListView_SetItemText(p->WndList,No,3,Date); ++No; } } Result = Stream->EnumDir(Stream,NULL,NULL,0,&DirItem); }
void TServerDeviceGlobals::OnInitialize() { // SSL { SSL_load_error_strings(); SSL_library_init(); srand(time(0)); m_pSSLContext = SSL_CTX_new(SSLv23_client_method()); if(m_pSSLContext == NULL) INITIATE_DEFINED_FAILURE(TEXT("Error creating SSL context.")); } // Cfg { TStructuredInfo Info(CFG_FILENAME); // Networking { TInfoNodeConstIterator Node = Info.GetNode(Info.GetRootNode(), TEXT("Networking")); ReadUINT( Node->GetParameterValue(TEXT("Port")), m_szTCPPort, TEXT("network port")); ReadUINT( Node->GetParameterValue(TEXT("SocketDelay")), m_szSocketDelay, TEXT("socket delay")); } // Authentication { TInfoNodeConstIterator Node = Info.GetNode(Info.GetRootNode(), TEXT("Authentication")); m_AuthURL = Node->GetParameterValue(TEXT("AuthURL")); m_PostReplyURL = Node->GetParameterValue(TEXT("PostReplyURL")); m_AuthResultString = Node->GetParameterValue(TEXT("AuthResultString")); KString Protocol, Address, Resource; SplitURL(m_AuthURL, Protocol, Address, Resource); if(!IsSupportedHTTPProtocol(Protocol)) INITIATE_DEFINED_FAILURE(TEXT("Unsupported authorization URL protocol.")); SplitURL(m_PostReplyURL, Protocol, Address, Resource); if(!IsSupportedHTTPProtocol(Protocol)) INITIATE_DEFINED_FAILURE(TEXT("Unsupported post-reply URL protocol.")); } } // Cypher { m_ServerKey.Generate(RSA_KEY_LENGTH); TModuleResource Resource( GetKModuleHandle(), RT_RCDATA, MAKEINTRESOURCE(IDR_DATA1)); TMemoryStream Stream(TArrayAllocation(1024, 1024)); Stream.StreamWrite(Resource.GetDataPtr(), Resource.GetSize()); m_CertKey.LoadAll(Stream); } // OCR { // Loading DLL m_OCR_DLL.Allocate(g_StartUpGlobals.m_StartFolder + OCR_DLL_FILENAME); // Getting functions g_pLoadDictionary = (TLoadDictionary*)m_OCR_DLL.GetFunction("loadDictionary"); g_pLoadModel = (TLoadModel*)m_OCR_DLL.GetFunction("loadModel"); g_pGetString = (TGetString*)m_OCR_DLL.GetFunction("getString"); // Initializing library g_pLoadDictionary(g_StartUpGlobals.m_StartFolder + "dict.txt"); g_pLoadModel(g_StartUpGlobals.m_StartFolder + "model.txt"); } }
static void MonitorFormParse(int fd,URL *Url,char *request_args,Body *request_body) { int i,mfd=-1; char **args,*url=NULL; URL *monUrl; char mofy[13]="NNNNNNNNNNNN",*dofm=NULL,dofw[8]="NNNNNNN",*hofd=NULL; char MofY[13],DofM[32],DofW[8],HofD[25]; if(!request_args && !request_body) { HTMLMessage(fd,404,"WWWOFFLE Monitor Form Error",NULL,"MonitorFormError", "body",NULL, NULL); return; } if(request_body) { char *form=URLRecodeFormArgs(request_body->content); args=SplitFormArgs(form); free(form); } else args=SplitFormArgs(request_args); for(i=0;args[i];i++) { if(!strncmp("url=",args[i],(size_t)4)) url=TrimArgs(URLDecodeFormArgs(args[i]+4)); else if(!strncmp("mofy1=",args[i],(size_t)6)) mofy[0]=args[i][6]; else if(!strncmp("mofy2=",args[i],(size_t)6)) mofy[1]=args[i][6]; else if(!strncmp("mofy3=",args[i],(size_t)6)) mofy[2]=args[i][6]; else if(!strncmp("mofy4=",args[i],6)) mofy[3]=args[i][6]; else if(!strncmp("mofy5=",args[i],(size_t)6)) mofy[4]=args[i][6]; else if(!strncmp("mofy6=",args[i],(size_t)6)) mofy[5]=args[i][6]; else if(!strncmp("mofy7=",args[i],(size_t)6)) mofy[6]=args[i][6]; else if(!strncmp("mofy8=",args[i],(size_t)6)) mofy[7]=args[i][6]; else if(!strncmp("mofy9=",args[i],(size_t)6)) mofy[8]=args[i][6]; else if(!strncmp("mofy10=",args[i],(size_t)7)) mofy[9]=args[i][7]; else if(!strncmp("mofy11=",args[i],(size_t)7)) mofy[10]=args[i][7]; else if(!strncmp("mofy12=",args[i],(size_t)7)) mofy[11]=args[i][7]; else if(!strncmp("dofm=",args[i],(size_t)5)) dofm=args[i]+5; else if(!strncmp("dofw0=",args[i],(size_t)6)) dofw[0]=args[i][6]; else if(!strncmp("dofw1=",args[i],(size_t)6)) dofw[1]=args[i][6]; else if(!strncmp("dofw2=",args[i],(size_t)6)) dofw[2]=args[i][6]; else if(!strncmp("dofw3=",args[i],(size_t)6)) dofw[3]=args[i][6]; else if(!strncmp("dofw4=",args[i],(size_t)6)) dofw[4]=args[i][6]; else if(!strncmp("dofw5=",args[i],(size_t)6)) dofw[5]=args[i][6]; else if(!strncmp("dofw6=",args[i],(size_t)6)) dofw[6]=args[i][6]; else if(!strncmp("hofd=",args[i],(size_t)5)) hofd=args[i]+5; else PrintMessage(Warning,"Unexpected argument '%s' seen decoding form data for URL '%s'.",args[i],Url->name); } if(url==NULL || *url==0) { HTMLMessage(fd,404,"WWWOFFLE Monitor Form Error",NULL,"MonitorFormError", "body",request_body?request_body->content:request_args, NULL); if(url) free(url); free(args[0]); free(args); return; } monUrl=SplitURL(url); free(url); /* Parse the requested time */ strcpy(MofY,"000000000000"); for(i=0;i<12;i++) if(mofy[i]=='Y') MofY[i]='1'; if(!dofm || !*dofm) strcpy(DofM,"1111111111111111111111111111111"); else { int d,any=0,range=0,lastd=0; char *p=dofm; strcpy(DofM,"0000000000000000000000000000000"); while(*p) { while(*p && !isdigit(*p)) { if(*p=='*') { strcpy(DofM,"1111111111111111111111111111111"); any=1; } if(*p=='-') range=1; p++; } if(!*p) break; d=atoi(p)-1; if(range) { if(d>30) d=30; for(;lastd<=d;lastd++) DofM[lastd]='1'; range=0; any++; } else if(d>=0 && d<31) { DofM[d]='1'; any++; lastd=d; } while(isdigit(*p)) p++; } if(range) for(;lastd<=30;lastd++) DofM[lastd]='1'; else if(!any) strcpy(DofM,"1111111111111111111111111111111"); } strcpy(DofW,"0000000"); for(i=0;i<7;i++) if(dofw[i]=='Y') DofW[i]='1'; if(!hofd || !*hofd) strcpy(HofD,"100000000000000000000000"); else { int h,any=0,range=0,lasth=0; char *p=hofd; strcpy(HofD,"000000000000000000000000"); while(*p) { while(*p && !isdigit(*p)) { if(*p=='*') { strcpy(HofD,"111111111111111111111111"); any=1; } if(*p=='-') range=1; p++; } if(!*p) break; h=atoi(p); if(range) { if(h>23) h=23; for(;lasth<=h;lasth++) HofD[lasth]='1'; range=0; any++; } else if(h>=0 && h<24) { HofD[h]='1'; any++; lasth=h; } while(isdigit(*p)) p++; } if(range) for(;lasth<=23;lasth++) HofD[lasth]='1'; else if(!any) strcpy(HofD,"100000000000000000000000"); } mfd=CreateMonitorSpoolFile(monUrl,MofY,DofM,DofW,HofD); if(mfd==-1) HTMLMessage(fd,500,"WWWOFFLE Server Error",NULL,"ServerError", "error","Cannot open file to store monitor request", NULL); else { Header *new_request_head=RequestURL(monUrl,NULL); char *head=HeaderString(new_request_head); init_io(mfd); write_string(mfd,head); finish_io(mfd); close(mfd); HTMLMessage(fd,200,"WWWOFFLE Monitor Will Get",NULL,"MonitorWillGet", "url",monUrl->name, NULL); free(head); FreeHeader(new_request_head); } free(args[0]); free(args); FreeURL(monUrl); }
static void MonitorFormShow(int fd,char *request_args) { char MofY[13],DofM[32],DofW[8],HofD[25]; char dofmstr[128],hofdstr[64],*p; char *url=NULL; int i,exists=0; if(request_args) url=URLDecodeFormArgs(request_args); if(url) { URL *monUrl=SplitURL(url); exists=ReadMonitorTimesSpoolFile(monUrl,MofY,DofM,DofW,HofD); FreeURL(monUrl); } else { strcpy(MofY,"111111111111"); strcpy(DofM,"1111111111111111111111111111111"); strcpy(DofW,"1111111"); strcpy(HofD,"100000000000000000000000"); } if(!strcmp(DofM,"1111111111111111111111111111111")) strcpy(dofmstr,"*"); else { *dofmstr=0; p=dofmstr; for(i=0;i<31;i++) if(DofM[i]=='1') { sprintf(p,"%d ",i+1); p+=strlen(p); } } if(!strcmp(HofD,"100000000000000000000000")) strcpy(hofdstr,"0"); else { *hofdstr=0; p=hofdstr; for(i=0;i<24;i++) if(HofD[i]=='1') { sprintf(p,"%d ",i); p+=strlen(p); } } HTMLMessage(fd,200,"WWWOFFLE Monitor Page",NULL,"MonitorPage", "url",url, "exists",exists==0?NULL:"Yes", "mofy1",MofY[0]=='1'?"Yes":NULL, "mofy2",MofY[1]=='1'?"Yes":NULL, "mofy3",MofY[2]=='1'?"Yes":NULL, "mofy4",MofY[3]=='1'?"Yes":NULL, "mofy5",MofY[4]=='1'?"Yes":NULL, "mofy6",MofY[5]=='1'?"Yes":NULL, "mofy7",MofY[6]=='1'?"Yes":NULL, "mofy8",MofY[7]=='1'?"Yes":NULL, "mofy9",MofY[8]=='1'?"Yes":NULL, "mofy10",MofY[9]=='1'?"Yes":NULL, "mofy11",MofY[10]=='1'?"Yes":NULL, "mofy12",MofY[11]=='1'?"Yes":NULL, "dofm",dofmstr, "dofw0",DofW[0]=='1'?"Yes":NULL, "dofw1",DofW[1]=='1'?"Yes":NULL, "dofw2",DofW[2]=='1'?"Yes":NULL, "dofw3",DofW[3]=='1'?"Yes":NULL, "dofw4",DofW[4]=='1'?"Yes":NULL, "dofw5",DofW[5]=='1'?"Yes":NULL, "dofw6",DofW[6]=='1'?"Yes":NULL, "hofd",hofdstr, NULL); if(url) free(url); }