| | |
| | | } |
| | | |
| | | int handleLogin(nng_socket sock, Json::Value request) { |
| | | std::cout << "accepted login request" << std::endl; |
| | | int rv, code; |
| | | std::cout << "===accepted login request" << std::endl; |
| | | int rv; |
| | | char rmsg[MAXLINE]; |
| | | strcpy(rmsg, "success"); |
| | | // char *buf; |
| | | Netdisk *netdisk = NULL; |
| | | |
| | |
| | | if(netdisk != NULL) { |
| | | userDeviceMap.insert({loginInfo.loginUUID, netdisk}); |
| | | } else { |
| | | err_msg(0, "无法识别的设备类型: %s", loginInfo.deviceType.c_str()); |
| | | |
| | | //rvout << "无法识别的设备类型:" << loginInfo.deviceType.c_str(); |
| | | snprintf(rmsg, MAXLINE, "无法识别的设备类型: %s", loginInfo.deviceType.c_str()); |
| | | } |
| | | } |
| | | |
| | | code = netdisk->login(loginInfo); |
| | | if (code == 0) { |
| | | rv = netdisk->login(loginInfo); |
| | | if (rv == 0) { |
| | | loginStore.saveLoginInfo(loginInfo); |
| | | std::cout << "起始通道:" << netdisk->getDeviceInfo().startChannel << ", 最大通道号:" << netdisk->getDeviceInfo().maxChannels << std::endl; |
| | | // std::cout << "起始通道:" << netdisk->getDeviceInfo().startChannel << ", 最大通道号:" << netdisk->getDeviceInfo().maxChannels << std::endl; |
| | | } |
| | | |
| | | |
| | | Json::Value response; |
| | | Json::Value payload; |
| | | payload["loginUUID"] = loginInfo.loginUUID; |
| | | response["code"] = code; |
| | | response["code"] = rv; |
| | | response["msg"] = rmsg; |
| | | response["payload"] = payload; |
| | | const std::string str = response.toStyledString(); |
| | | |
| | | err_msg(0, "login send back:\n %s", str.c_str()); |
| | | // nng内部会释放buf |
| | | rv = nng_send(sock, strdup(str.c_str()), str.length(), NNG_FLAG_ALLOC); |
| | | //free(buf); |
| | |
| | | return 0; |
| | | } |
| | | |
| | | int handleLogout(nng_socket sock, Json::Value request) { |
| | | std::cout << "===accepted logout request" << std::endl; |
| | | int rv; |
| | | char rmsg[MAXLINE]; |
| | | strcpy(rmsg, "success"); |
| | | // char *buf; |
| | | Netdisk *netdisk = NULL; |
| | | |
| | | Json::Value arguments = request["arguments"]; |
| | | std::string loginUUID=arguments["loginUUID"].asString(); |
| | | Netdisk_LoginInfo loginInfo = loginStore.getLoginInfo(loginUUID); |
| | | |
| | | std::map<std::string, Netdisk *>::iterator userDeviceIter = userDeviceMap.find(loginUUID); |
| | | if( userDeviceIter != userDeviceMap.end() ) { |
| | | netdisk = userDeviceIter->second; |
| | | } |
| | | |
| | | if (netdisk == NULL) { |
| | | netdisk = NetdiskFacotory::create(loginInfo.deviceType); |
| | | if(netdisk != NULL) { |
| | | userDeviceMap.insert({loginInfo.loginUUID, netdisk}); |
| | | } else { |
| | | |
| | | //rvout << "无法识别的设备类型:" << loginInfo.deviceType.c_str(); |
| | | snprintf(rmsg, MAXLINE, "无法识别的设备类型: %s", loginInfo.deviceType.c_str()); |
| | | } |
| | | } |
| | | |
| | | rv = netdisk->logout(); |
| | | |
| | | Json::Value response; |
| | | response["code"] = rv; |
| | | response["msg"] = rmsg; |
| | | Json::Value payload; |
| | | payload["loginUUID"] = loginInfo.loginUUID; |
| | | response["payload"] = payload; |
| | | const std::string str = response.toStyledString(); |
| | | // nng内部会释放buf |
| | | rv = nng_send(sock, strdup(str.c_str()), str.length(), NNG_FLAG_ALLOC); |
| | | if (rv != 0) { |
| | | fatal("nng_send", rv); |
| | | return rv; |
| | | } |
| | | return 0; |
| | | } |
| | | |
| | | |
| | | int handleGetDeviceInfo(nng_socket sock, Json::Value request) { |
| | | std::cout << "===accepted getDeviceInfo request" << std::endl; |
| | | int rv; |
| | | char rmsg[MAXLINE]; |
| | | strcpy(rmsg, "success"); |
| | | // char *buf; |
| | | Netdisk *netdisk = NULL; |
| | | DeviceInfo deviceInfo; |
| | | |
| | | Json::Value arguments = request["arguments"]; |
| | | std::string loginUUID=arguments["loginUUID"].asString(); |
| | | |
| | | Netdisk_LoginInfo loginInfo = loginStore.getLoginInfo(loginUUID); |
| | | |
| | | std::map<std::string, Netdisk *>::iterator userDeviceIter = userDeviceMap.find(loginUUID); |
| | | if( userDeviceIter != userDeviceMap.end() ) { |
| | | netdisk = userDeviceIter->second; |
| | | } |
| | | |
| | | if (netdisk == NULL) { |
| | | netdisk = NetdiskFacotory::create(loginInfo.deviceType); |
| | | if(netdisk != NULL) { |
| | | userDeviceMap.insert({loginInfo.loginUUID, netdisk}); |
| | | } else { |
| | | |
| | | //rvout << "无法识别的设备类型:" << loginInfo.deviceType.c_str(); |
| | | snprintf(rmsg, MAXLINE, "无法识别的设备类型: %s", loginInfo.deviceType.c_str()); |
| | | } |
| | | } |
| | | |
| | | if ( (rv = netdisk->login(loginInfo)) != 0 ) { |
| | | snprintf(rmsg, MAXLINE, "请重新登录"); |
| | | } else { |
| | | deviceInfo = netdisk->getDeviceInfo(); |
| | | } |
| | | |
| | | Json::Value response; |
| | | response["code"] = rv; |
| | | response["msg"] = rmsg; |
| | | Json::Value payload; |
| | | payload["loginUUID"] = loginUUID; |
| | | Json::Value jsonDeviceInfo; |
| | | jsonDeviceInfo["startChannel"] = deviceInfo.startChannel; |
| | | jsonDeviceInfo["maxChannels"] = deviceInfo.maxChannels; |
| | | payload["deviceInfo"] = jsonDeviceInfo; |
| | | response["payload"] = payload; |
| | | const std::string str = response.toStyledString(); |
| | | // nng内部会释放buf |
| | | rv = nng_send(sock, strdup(str.c_str()), str.length(), NNG_FLAG_ALLOC); |
| | | if (rv != 0) { |
| | | fatal("nng_send", rv); |
| | | return rv; |
| | | } |
| | | return 0; |
| | | } |
| | | |
| | | |
| | | |
| | | int handleDownloadByTimeAsync(nng_socket sock, Json::Value request) { |
| | | std::cout << "accepted handleDownloadByTime request" << std::endl; |
| | | std::cout << "received downloadByTime request" << std::endl; |
| | | int rv; |
| | | char rmsg[MAXLINE]; |
| | | strcpy(rmsg, "received downloadByTime request"); |
| | | // char *buf; |
| | | |
| | | Json::Value arguments = request["arguments"]; |
| | |
| | | |
| | | Json::Value response; |
| | | response["code"] = 0; |
| | | response["msg"] = rmsg; |
| | | std::string str = response.toStyledString(); |
| | | std::cout << str << std::endl; |
| | | if ((rv = nng_send(sock, strdup(str.c_str()), str.length(), NNG_FLAG_ALLOC)) != 0) { |
| | |
| | | return rv; |
| | | } |
| | | return 0; |
| | | |
| | | |
| | | } |
| | | |
| | | int handleDownloadByTime(nng_socket sock, Json::Value request) { |