aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.Client/PS3/4JLibs/STO_TitleSmallStorage.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Minecraft.Client/PS3/4JLibs/STO_TitleSmallStorage.cpp')
-rw-r--r--Minecraft.Client/PS3/4JLibs/STO_TitleSmallStorage.cpp210
1 files changed, 210 insertions, 0 deletions
diff --git a/Minecraft.Client/PS3/4JLibs/STO_TitleSmallStorage.cpp b/Minecraft.Client/PS3/4JLibs/STO_TitleSmallStorage.cpp
new file mode 100644
index 00000000..f3d2729f
--- /dev/null
+++ b/Minecraft.Client/PS3/4JLibs/STO_TitleSmallStorage.cpp
@@ -0,0 +1,210 @@
+#include "stdafx.h"
+
+
+#include <stdlib.h>
+#include <string.h>
+#include <cell/l10n.h>
+#include <cell/pad.h>
+#include <cell/cell_fs.h>
+#include <sys/process.h>
+#include <sys/ppu_thread.h>
+#include <cell/sysmodule.h>
+#include <cell/rtc.h>
+
+#include <libsn.h>
+
+#include <sysutil/sysutil_common.h>
+#include <sysutil/sysutil_sysparam.h>
+#include <sysutil/sysutil_savedata.h>
+
+#include "STO_TitleSmallStorage.h"
+#include "../Passphrase/ps3__np_conf.h"
+
+
+
+#if 0
+
+int32_t CTSS::TssSizeCheck(size_t size)
+{
+ printf("=======Tss Data size = %d\n", size);
+
+ //E Recommendation: The data's size should be checked against for the server operation mistake.
+ //E If it is necessary, implement size check based on your data format, please.
+
+ if (size == 0)
+ {
+ printf("Tss File size is 0 byte. Maybe, data isn't set on the server.\n\n");
+ printf("\tThe data is set with scp. The account is generable in PS3 Developer Network.\n");
+ printf("\tThere are three server environments. for development, environment for test, and product.\n");
+ }
+ return 0;
+}
+
+int32_t CTSS::TssHashCheck(void *data, size_t size)
+{
+ //E Recommendation: The data format should be include it's hash against for operation mistakes and crack.
+ //E If it is necessary, implement hash check based on your data format, please.
+ return 0;
+}
+
+int32_t CTSS::TssVersionCheck(void *data, size_t size)
+{
+ //E Recommendation: The data format should be include it's version for changes of the format.
+ //E If it is necessary, implement version check based on your data format, please.
+ return 0;
+}
+
+int32_t CTSS::doLookupTitleSmallStorage(void)
+{
+ int32_t ret = 0;
+ int32_t transId = 0;
+ void *data=NULL;
+ size_t dataSize=0;
+
+ SceNpId npId;
+ ret = sceNpManagerGetNpId(&npId);
+ if(ret < 0){
+ return ret;
+ }
+
+ ret = sceNpLookupInit();
+ if (ret < 0)
+ {
+ printf("sceNpLookupInit() failed. ret = 0x%x\n", ret);
+ goto error;
+ }
+ ret = sceNpTusInit(0);
+ if (ret < 0)
+ {
+ printf("sceNpTusInit() failed. ret = 0x%x\n", ret);
+ goto error;
+ }
+
+ ret = sceNpLookupCreateTitleCtx(&s_npCommunicationId, &npId);
+ if (ret < 0)
+ {
+ printf("sceNpLookupCreateTitleCtx() failed. ret = 0x%x\n", ret);
+ goto error;
+ }
+ m_lookupTitleCtxId = ret;
+
+ ret = sceNpTusCreateTitleCtx(&s_npCommunicationId, &s_npCommunicationPassphrase, &npId);
+ if (ret < 0)
+ {
+ printf("sceNpTusCreateTitleCtx() failed. ret = 0x%x\n", ret);
+ goto error;
+ }
+ printf("sceNpTusCreateTitleCtx() return %x\n", ret);
+ m_tusTitleCtxId = ret;
+
+ //memset(&npclient_info, 0x00, sizeof(npclient_info));
+
+ data = malloc(SCE_NET_NP_TSS_MAX_SIZE);
+ if (data == NULL)
+ {
+ printf("out of memory: can't allocate memory for titleSmallStorage\n");
+ ret = -1;
+ goto error;
+ }
+ memset(data, 0x00, SCE_NET_NP_TSS_MAX_SIZE);
+
+ ret = sceNpLookupCreateTransactionCtx(m_lookupTitleCtxId);
+ if (ret < 0)
+ {
+ printf("sceNpLookupCreateTransactionCtx() failed. ret = 0x%x\n", ret);
+ goto error;
+ }
+ transId = ret;
+
+
+// ret = sceNpLookupTitleSmallStorage(transId,
+// data,
+// SCE_NET_NP_TSS_MAX_SIZE,
+// &dataSize,
+// NULL);
+// if (ret < 0)
+// {
+// printf("sceNpLookupTitleSmallStorage() failed. ret = 0x%x\n", ret);
+// goto error;
+// }
+//
+// ret = TssSizeCheck(dataSize);
+// if (ret < 0)
+// {
+// goto error;
+// }
+// ret = TssHashCheck(data, dataSize);
+// if (ret < 0)
+// {
+// goto error;
+// }
+// ret = TssVersionCheck(data, dataSize);
+// if (ret < 0)
+// {
+// goto error;
+// }
+
+/*
+ // Process communication
+ void *data;
+ size_t dataSize;
+ SceNpTssSlotId slotId=SLOTID;
+ SceNpTssDataStatus dataStatus;
+ const char *ptr =NULL;
+ size_t recvdSize=0;
+ size_t totalSize=0;
+ size_t recvSize=0;
+
+ do {
+ ret = sceNpTssGetData(
+ transId,
+ slotId,
+ &dataStatus,
+ sizeof(SceNpTssDataStatus),
+ ptr,
+ recvSize,
+ NULL);
+ if (ret < 0)
+ {
+ // Error handling
+ goto error;
+ }
+ if (dataStatus.contentLength == 0)
+ {
+ // Processing when there is no data
+ goto finish;
+ }
+ if (ptr == NULL)
+ {
+ ptr = malloc(dataStatus.contentLength);
+ if (ptr == NULL){
+ // Error handling
+ goto error;
+ }
+ recvSize = BLOCKSIZE;
+ }
+ recvedSize += ret;
+ ptr += ret;
+ } while (recvedSize < dataStatus.contentLength);
+
+*/
+
+
+
+error:
+ if (transId > 0)
+ {
+ ret = sceNpLookupDestroyTransactionCtx(transId);
+ printf("sceNpLookupDestroyTransactionCtx() done. ret = 0x%x\n", ret);
+ }
+ if (data != NULL)
+ {
+ free(data);
+ }
+
+ sceNpTusTerm();
+
+ return 0;
+}
+
+#endif \ No newline at end of file