int main() { RCC_Configuration(); ConfigSys_LedGpioEnable(); // Точка входа в приложение; TermMain(); return 0; }
static void TermSession( TermNode *term) { SessionData *data; char buff[SIZE_TERM+1]; RecvnString(term->fp,SIZE_TERM,buff); data = CheckSession(term->fp,buff); if (data != NULL) { data = ReadTerminal(term->fp,data); data->term = term; data->retry = 0; TermMain(term,data); } CloseNet(term->fp); }
static void TermInit( TermNode *term) { SessionData *data; LD_Node *ld; int i; uuid_t u; ENTER_FUNC; data = NewSessionData(); data->term = term; data->fInProcess = TRUE; uuid_generate(u); uuid_unparse(u,data->hdr->uuid); if ((ld = g_hash_table_lookup(APS_Hash,ThisEnv->InitialLD)) == NULL) { Error("cannot find initial ld:%s.check directory",ThisEnv->InitialLD); } RecvnString(term->fp,SIZE_NAME,data->hdr->user);ON_IO_ERROR(term->fp,badio); RecvnString(term->fp,SIZE_HOST,data->host); ON_IO_ERROR(term->fp,badio); RecvnString(term->fp,SIZE_NAME,data->agent);ON_IO_ERROR(term->fp,badio); MessageLogPrintf("[%s:%s] session start",data->hdr->user,data->hdr->uuid); dbgprintf("uuid = [%s]",data->hdr->uuid); dbgprintf("user = [%s]",data->hdr->user); dbgprintf("host = [%s]",data->host); dbgprintf("agent = [%s]",data->agent); if (SesNum != 0 && GetSessionNum() >= SesNum) { Warning("Discard new session(%s);max session number(%d)",term,SesNum); SendPacketClass(term->fp,WFC_NOT); CloseNet(term->fp); return; } SendPacketClass(term->fp,WFC_OK); ON_IO_ERROR(term->fp,badio); SendString(term->fp,data->hdr->uuid); ON_IO_ERROR(term->fp,badio); data->ld = ld; data->linkdata = NewLinkData(); data->cWindow = ld->info->cWindow; data->scrdata = (LargeByteString **)xmalloc(sizeof(void*)*data->cWindow); for (i = 0 ; i < data->cWindow ; i ++) { if (data->ld->info->windows[i] != NULL) { dbgprintf("[%s]",data->ld->info->windows[i]->name); data->scrdata[i] = GetScreenData(data,data->ld->info->windows[i]->name); } else { data->scrdata[i] = NULL; } } data->hdr->puttype = SCREEN_NULL; RegisterSession(data); TermMain(term,data); CloseNet(term->fp); badio: LEAVE_FUNC; return; }