| 116 | } |
| 117 | |
| 118 | Result udsGenerateNodeInfo(udsNodeInfo *nodeinfo, const char *username) |
| 119 | { |
| 120 | Result ret=0; |
| 121 | ssize_t units=0; |
| 122 | size_t len; |
| 123 | u8 tmp[0x1c]; |
| 124 | |
| 125 | memset(nodeinfo, 0, sizeof(udsNodeInfo)); |
| 126 | memset(tmp, 0, sizeof(tmp)); |
| 127 | |
| 128 | ret = cfguInit(); |
| 129 | if (R_FAILED(ret))return ret; |
| 130 | |
| 131 | ret = CFGU_GetConfigInfoBlk2(sizeof(nodeinfo->uds_friendcodeseed), 0x00090000, &nodeinfo->uds_friendcodeseed); |
| 132 | if (R_FAILED(ret)) |
| 133 | { |
| 134 | cfguExit(); |
| 135 | return ret; |
| 136 | } |
| 137 | |
| 138 | ret = CFGU_GetConfigInfoBlk2(sizeof(tmp), 0x000A0000, tmp); |
| 139 | if (R_FAILED(ret)) |
| 140 | { |
| 141 | cfguExit(); |
| 142 | return ret; |
| 143 | } |
| 144 | |
| 145 | memcpy(nodeinfo->usercfg, tmp, sizeof(nodeinfo->usercfg)); |
| 146 | |
| 147 | if(username) |
| 148 | { |
| 149 | len = 10; |
| 150 | |
| 151 | memset(nodeinfo->username, 0, sizeof(nodeinfo->username)); |
| 152 | |
| 153 | units = utf8_to_utf16((uint16_t*)nodeinfo->username, (uint8_t*)username, len); |
| 154 | |
| 155 | if(units < 0 || units > len)ret = -2; |
| 156 | } |
| 157 | |
| 158 | cfguExit(); |
| 159 | |
| 160 | return ret; |
| 161 | } |
| 162 | |
| 163 | Result udsGetNodeInfoUsername(const udsNodeInfo *nodeinfo, char *username) |
| 164 | { |
no test coverage detected