This is used for Push Notifications.
It uses a version of the libstrophe[1] xmpp library with libxml2. Modifications were made to use the ssl service and support network proxy settings.
npns:u
This is "nn::npns::INpnsUser".
Cmd | Name |
---|---|
1 | ListenAll |
2 | #ListenTo |
3 | Receive |
4 | ReceiveRaw |
5 | #GetReceiveEvent |
7 | #GetStateChangeEvent |
8 | [18.0.0+] ListenToByName |
21 | CreateToken |
23 | DestroyToken |
25 | QueryIsTokenValid |
26 | [5.0.0+] ListenToMyApplicationId |
101 | Suspend |
102 | Resume |
103 | GetState |
104 | [3.0.0+] GetStatistics |
111 | GetJid |
120 | [7.0.0+] #CreateNotificationReceiver |
151 | [8.0.0+] GetStateWithHandover |
152 | [8.0.0+] GetStateChangeEventWithHandover |
153 | [8.0.0+] GetDropEventWithHandover |
154 | [12.0.0+] CreateTokenAsync |
[5.0.0+] CreateToken/DestroyToken now takes an additional 8-bytes of input and a PID.
npns:s
This is "nn::npns::INpnsSystem".
Cmd | Name |
---|---|
1 | ListenAll |
2 | #ListenTo |
3 | Receive |
4 | ReceiveRaw |
5 | #GetReceiveEvent |
6 | #ListenUndelivered |
7 | #GetStateChangeEvent |
8 | [18.0.0+] ListenToByName |
11 | SubscribeTopic |
12 | UnsubscribeTopic |
13 | [1.0.0-17.0.1] QueryIsTopicExist |
14 | [18.0.0+] |
15 | [18.0.0+] |
16 | [18.0.0+] |
21 | CreateToken |
22 | CreateTokenWithApplicationId |
23 | DestroyToken |
24 | DestroyTokenWithApplicationId |
25 | QueryIsTokenValid |
26 | [5.0.0+] ListenToMyApplicationId |
27 | [13.0.0+] DestroyTokenAll |
28 | [18.0.0+] CreateTokenWithName |
29 | [18.0.0+] DestroyTokenWithName |
31 | UploadTokenToBaaS |
32 | [2.0.0+] DestroyTokenForBaaS |
33 | [7.0.0+] CreateTokenForBaas |
34 | [7.0.0+] SetBaasDeviceAccountIdList |
35 | [17.0.0+] LinkNsaId |
36 | [17.0.0+] UnlinkNsaId |
37 | [18.0.0+] RelinkNsaId |
40 | [17.0.0+] GetNetworkServiceAccountIdTokenRequestEvent |
41 | [17.0.0+] TryPopNetworkServiceAccountIdTokenRequestUid |
42 | [17.0.0+] SetNetworkServiceAccountIdTokenSuccess |
43 | [17.0.0+] SetNetworkServiceAccountIdTokenFailure |
44 | [17.0.0+] SetUidList |
45 | [17.0.0+] PutDigitalTwinKeyValue |
51 | [18.0.0+] |
101 | Suspend |
102 | Resume |
103 | GetState |
104 | [3.0.0+] GetStatistics |
105 | [3.0.0+] GetPlayReportRequestEvent |
106 | [18.0.0+] |
107 | [18.0.0+] |
111 | #GetJid |
112 | #CreateJid |
113 | #DestroyJid |
114 | AttachJid |
115 | DetachJid |
120 | [7.0.0+] #CreateNotificationReceiver |
151 | [8.0.0+] GetStateWithHandover |
152 | [8.0.0+] GetStateChangeEventWithHandover |
153 | [8.0.0+] GetDropEventWithHandover |
154 | [12.0.0+] CreateTokenAsync |
155 | [12.0.0+] CreateTokenAsyncWithApplicationId |
156 | [18.0.0+] |
161 | [10.0.0+] GetRequestChangeStateCancelEvent |
162 | [10.0.0+] RequestChangeStateForceTimedWithCancelEvent |
201 | [3.0.0+] RequestChangeStateForceTimed |
202 | [3.0.0+] RequestChangeStateForceAsync |
301 | [18.0.0+] GetPassword |
302 | [18.0.0+] GetAllImmigration |
303 | [18.0.0+] |
304 | [18.0.0+] |
305 | [18.0.0+] |
306 | [18.0.0+] |
[5.0.0+] CreateToken/DestroyToken now takes an additional 8-bytes of input and a PID.
ListenAll, ReceiveRaw, CreateToken, DestroyToken, QueryIsTokenValid are stubbed. They return 0x7fc9a on [1.0.0] and 0x36dc9a on later versions.
ListenTo
Takes an input u64 program id, no output.
GetReceiveEvent
No input, returns an output Event handle with autoclear=true.
GetStateChangeEvent
No input, returns an output Event handle with autoclear=true.
ListenUndelivered
No input, same as calling #ListenTo with program id 0.
GetJid
No input, returns the current Jabber Identifier[2] in a type-10 buffer. Locally it's stored in "npns_save:/persistent.bin"
CreateJid
No input, no output. Fetches a new Jid from the CDN. Invalidates the old one if existent.
DestroyJid
No input, no output. Invalidates and deletes the current Jid.
CreateNotificationReceiver
Returns an #INotificationReceiver.
INotificationReceiver
This is "nn::npns::INotificationReceiver".
This was added with [7.0.0+].
Cmd | Name | Notes |
---|---|---|
1 | #ListenTo | Takes a total of 8-bytes of input, no output. |
2 | ListenToMyApplicationId | Takes a total of 8-bytes of input and a PID, no output. |
3 | Receive | Takes a total of 2-bytes of input and a type-0x6 output buffer. |
4 | GetReceiveEvent | No input, returns an output handle. |
5 | [18.0.0+] ListenToByName |
ICreateTokenAsyncContext
This is "nn::npns::ICreateTokenAsyncContext".
This was added with [12.0.0+].
Cmd | Name |
---|---|
1 | GetFinishEvent |
2 | Cancel |
3 | GetResult |
10 | GetToken |
Notes
pm:bm GetBootMode is only used for passing BootMode == Maintenance
to a func, which eventually writes that flag into object state. The func which uses GetBootMode is called from nnMain.