jdev - 2021-01-20


  1. Vaulor has left
  2. Vaulor has joined
  3. Vaulor has left
  4. Vaulor has joined
  5. Vaulor has left
  6. Vaulor has joined
  7. Vaulor has left
  8. Vaulor has joined
  9. Vaulor has left
  10. Vaulor has joined
  11. wurstsalat has left
  12. Vaulor has left
  13. Vaulor has joined
  14. belong has left
  15. Vaulor has left
  16. stpeter has left
  17. Vaulor has joined
  18. kikuchiyo has left
  19. Vaulor has left
  20. Vaulor has joined
  21. mikeye has joined
  22. belong has joined
  23. Vaulor has left
  24. Vaulor has joined
  25. Vaulor has left
  26. Vaulor has joined
  27. Vaulor has left
  28. Vaulor has joined
  29. Vaulor has left
  30. Vaulor has joined
  31. Vaulor has left
  32. Vaulor has joined
  33. Vaulor has left
  34. Vaulor has joined
  35. paul has left
  36. Vaulor has left
  37. Vaulor has joined
  38. Vaulor has left
  39. Vaulor has joined
  40. debacle has left
  41. Vaulor has left
  42. Vaulor has joined
  43. Vaulor has left
  44. Vaulor has joined
  45. Vaulor has left
  46. Vaulor has joined
  47. Vaulor has left
  48. Vaulor has joined
  49. Vaulor has left
  50. Vaulor has joined
  51. Vaulor has left
  52. Vaulor has joined
  53. Vaulor has left
  54. Vaulor has joined
  55. stpeter has joined
  56. Vaulor has left
  57. Vaulor has joined
  58. stpeter has left
  59. Vaulor has left
  60. Vaulor has joined
  61. Vaulor has left
  62. Vaulor has joined
  63. mikeye has left
  64. Vaulor has left
  65. Vaulor has joined
  66. Vaulor has left
  67. Vaulor has joined
  68. Vaulor has left
  69. Vaulor has joined
  70. Vaulor has left
  71. Vaulor has joined
  72. Vaulor has left
  73. Vaulor has joined
  74. Vaulor has left
  75. Vaulor has joined
  76. Vaulor has left
  77. Vaulor has joined
  78. Vaulor has left
  79. Vaulor has joined
  80. Vaulor has left
  81. Vaulor has joined
  82. Vaulor has left
  83. Vaulor has joined
  84. Vaulor has left
  85. Vaulor has joined
  86. Vaulor has left
  87. Vaulor has joined
  88. alex-a-soto has left
  89. alex-a-soto has joined
  90. Vaulor has left
  91. Vaulor has joined
  92. mikeye has joined
  93. Vaulor has left
  94. Vaulor has joined
  95. Vaulor has left
  96. Vaulor has joined
  97. stefan has joined
  98. SouL has joined
  99. mikeye has left
  100. paul has joined
  101. wurstsalat has joined
  102. goffi has joined
  103. oibalos has joined
  104. mac has joined
  105. Martin has left
  106. Martin has joined
  107. marmistrz has joined
  108. mac has left
  109. asterix has left
  110. asterix has joined
  111. stefan has left
  112. stefan has joined
  113. asterix has left
  114. asterix has joined
  115. asterix has left
  116. asterix has joined
  117. belong has left
  118. asterix has left
  119. asterix has joined
  120. belong has joined
  121. mikeye has joined
  122. mikeye has left
  123. mikeye has joined
  124. kikuchiyo has joined
  125. asterix has left
  126. asterix has joined
  127. gav has joined
  128. mikeye has left
  129. asterix has left
  130. asterix has joined
  131. asterix has left
  132. asterix has joined
  133. asterix has left
  134. asterix has joined
  135. asterix has left
  136. asterix has joined
  137. mikeye has joined
  138. asterix has left
  139. asterix has joined
  140. wurstsalat has left
  141. wurstsalat has joined
  142. mikeye has left
  143. mikeye has joined
  144. Vaulor has left
  145. Vaulor has joined
  146. mikeye has left
  147. Vaulor has left
  148. Vaulor has joined
  149. Vaulor has left
  150. Vaulor has joined
  151. Vaulor has left
  152. Vaulor has joined
  153. debacle has joined
  154. asterix has left
  155. asterix has joined
  156. belong has left
  157. kikuchiyo has left
  158. belong has joined
  159. kikuchiyo has joined
  160. Sam Whited I'm sure I've asked this before and don't remember if I ever got an answer, but BOSH defines a version string during negotiation, but as far as I can tell there is no actual version listed anywhere. The XEP version doesn't even match the same format (and of course involves lots of changes that wouldn't change a protocol version anyways), so I have no idea what value to put there?
  161. Sam Whited (not the xmpp:version from XEP-0206, but the ver attribute from XEP-0124, to be clear)
  162. Zash looks at Prosodys mod_bosh
  163. Zash It has '1.6' 🤷️
  164. Kev Urgh. If people are going to discuss BOSH can they at least put it in NSFW tags or something? :(
  165. Sam Whited hah, that would be a good April 1st XEP. NSFW feature (which could be a real feature) but also we list technologies such as BOSH that must be behind it.
  166. Zash There is that spoiler message XEP...
  167. Sam Whited Zash: 1.6 appears to be used in one of the examples and is a version of the BOSH XEP itself, so maybe that was the intent? I have no idea.
  168. Sam Whited Especially since the XEP version might be bumped just for typos and recent ones use major.minor.patch syntax which doesn't fit the bosh version syntax
  169. Sam Whited looks at who introduced the new version syntax and broke things… *blushes*
  170. jonnj has left
  171. Sam Whited *sigh* it would almost be easier to revive the websocket over HTTP/2 I-D than to continue implementing BOSH.
  172. Kev Swiften also sends 1.6, FWIW.
  173. Zash 1.6 was probably the latest version when mod_bosh was written, it was committed ~2 months after 1.7 was published (according to the xep changelog)
  174. Kev But my view is that if you're implementing BOSH for anything less than a significant amount of money (or insert other motivator here), you're probably soft in the head.
  175. moparisthebest Sam Whited, revive what? doesn't https://tools.ietf.org/html/rfc8441 support it?
  176. Kev AFAICS, Swiften doesn't care at all about the ver, it just includes it at 1.6
  177. Kev I *suspect* that's true of every implementation, but have no evidence to support that.
  178. Zash Kev, Prosody doesn't seem to do the same
  179. Zash Kev, Prosody seems to do the same
  180. Sam Whited Kev: you're not wrong… this is the second or third time I've tried to do this (only once for money, and even then only a moderate amount of money)
  181. Sam Whited And every single time I think "this time's the one, this time it will work correctly" and I always end up abandoning it in frustration.
  182. Sam Whited I'll stick with 1.6 for compatibility then (why not). Thanks
  183. Kev I've implemented it once and a bit. I think another implementation is in my future, but I'm trying to avoid it.
  184. Sam Whited moparisthebest: thanks for the link, I thought this had never gotten beyond I-D for some reason. I'll have to re-read (assuming this is the same thing) and see. Maybe websockets actually does work on HTTP/2 now and I just have old info
  185. Sam Whited I guess I didn't abandon the commercial one in frustration, HipChat just ended up being sold and I left the company. No idea if they ever used it or not.
  186. goffi has left
  187. goffi has joined
  188. asterix has left
  189. asterix has joined
  190. jonnj has joined
  191. stpeter has joined
  192. moparisthebest Sam Whited: I was rather recently surprised by that RFC also :)
  193. moparisthebest The next question is will the same thing work over http/3
  194. SouL has left
  195. asterix has left
  196. asterix has joined
  197. SouL has joined
  198. adityaborikar has left
  199. adityaborikar has joined
  200. adityaborikar has left
  201. adityaborikar has joined
  202. junaid has left
  203. junaid has joined
  204. kikuchiyo has left
  205. kikuchiyo has joined
  206. belong has left
  207. belong has joined
  208. marmistrz has left
  209. edhelas has left
  210. edhelas has joined
  211. marmistrz has joined
  212. paul has left
  213. paul has joined
  214. paul has left
  215. paul has joined
  216. alex-a-soto has left
  217. alex-a-soto has joined
  218. Guest has joined
  219. Guest has left
  220. stpeter has left
  221. paul has left
  222. paul has joined
  223. stpeter has joined
  224. stpeter has left
  225. stpeter has joined
  226. Sam Whited Another stupid question which I just realized is a problem (potentially): what do people do in their libraries if someone tries to send an IQ without a namespace? Normally it would just be in the default namespace and therefore still a stanza, but if I implemented the websocket subprotocol as discussed earlier it wouldn't have a namespace and wouldn't be a stanza. Maybe I should detect anything called "iq", "message", or "presence" without a namespace set and just set it to the right thing (although technically I guess that's wrong and you could have a non-stanza thing called "iq", but that would be dumb so I'm not sure if I care)\
  227. Zash Dunno what libraries do, but Prosody tweaks the namespace on outgoing stanzas to have the proper jabber:client namespace if it's unset.
  228. flow ideally users are not able to construct IQ instances without a namespace
  229. Sam Whited Users can send whatever arbitrary XML they want, so that's not an option
  230. Zash I feel like there would be type system things you could do here
  231. Sam Whited But that's a good point, maybe if it's sent with the IQ struct I could find a way to make those always get the right namespace set at least
  232. Sam Whited Then if users deliberately encode XML tokens that include "<iq xmlns=''/>" that's fine, it's their problem, but if they use the safer library features they get the correct behavior
  233. flow ideally users are not able to construct IQ instances without a namespace (for the IQ child element)
  234. flow I just realized that we are talking only about jabber:client / jabber:server as namespace
  235. Zash That may be a nice place to enforce that iq stanzas have an @id attribute as well, and other constraints
  236. Sam Whited oh yah, sorry, wasn't thinking of the IQ child
  237. Sam Whited I have ID enforced at the stream level actually. It looks at all tokens passing through and if any of them are "iq", "message", or "presence" with namespace "jabber:client" or "jabber:server" it adds IDs (and "from" if it's an s2s connection)
  238. flow in Smack, stanzas implicitly have the right namespace (jabber:client in smack's case), and when the stanza is serialized, Smack will try to avoid printing the namespace declaration if it is redundant
  239. Sam Whited So right now if you sent "iq" with no namespace those rules wouldn't trigger either
  240. Sam Whited meh, maybe I'll just add the namespace to anything called "iq" with an empty namespace in the same place IDs are enforced. It's just easier and if it ever causes an actual problem I'll eat my hat
  241. Zash Similar in Prosody, missing xmlns attribute normally means it's the same as the parent, or the default stream namespace, but websocket being a bit special there means special care needs to be taken somewhere in the pipeline.
  242. Zash (Why couldn't we have a websockets-for-normal-clients that's just the same as the TCP binding but with WS framing?)
  243. o2 has left
  244. Sam Whited I wonder that every time I read through this spec…
  245. Sam Whited I'm sure there was some sort of good reason for doing it this way, but I have no idea what it is.
  246. Zash It's because browsers don't have streaming XML parsers exposed to JavaScript
  247. Zash Thus every frame must be a vaid XML document.
  248. Sam Whited oh yah, that makes sense
  249. Sam Whited Actual other question: I was just thinking I'd do the client side because "why not?" (once I've done the receiving side it's pretty trivial to make the handshake work for a client connection too), but why would anything use websockets that's not actually the web?
  250. stpeter Heh, I still remember trying to convince Mike Shaver to add XMPP to Firefox at an OSCON in Portland around 2002/2003...
  251. Sam Whited I guess technically some server could only expose that
  252. Zash But WebSockets have sub-protocol negotiation, it wouldn't be super hard to add another for those with streaming parsers
  253. Sam Whited stpeter: as a javascript feature or as part of that chat product that was built in for a while? Either way, that would have been fun :)
  254. Zash You could have used it to get trough web stacks and firewalls, but now you could do that with ALPN instead.
  255. moparisthebest > why would anything use websockets that's not actually the web? another easy firewall bypass Sam Whited
  256. Sam Whited Oh yah, firewall bypass makes sense
  257. Zash There are desktop clients with BOSH support after all
  258. stpeter Sam Whited: the idea that DizzyD and I had was that they could use XMPP for real-time notifications and experiences within the browser
  259. moparisthebest you've got your network security people who refuse to expose anything to the internet that can't be "protected" by their enterprise (tm) WAF
  260. Sam Whited nifty
  261. stpeter (this was before xmlhttprequest and such)
  262. moparisthebest stpeter, so you invented push notifications? :)
  263. Zash Oh, I though XHR dated back to the 90s, better recallibrate that.
  264. stpeter Zash: not sure actually
  265. Zash Or maybe it's just so long ago that my brain is compressing the 90-00 era into one...
  266. stpeter Well I'm wrong.
  267. stpeter https://en.wikipedia.org/wiki/XMLHttpRequest#History
  268. o2 has joined
  269. Sam Whited I always think of XML only really taking off in the early 2000's, not that I was paying much attention at the time so I'm probably wrong
  270. o2 has left
  271. o2 has joined
  272. o2 has left
  273. o2 has joined
  274. oibalos has left
  275. floretta has left
  276. floretta has joined
  277. oibalos has joined
  278. stefan has left
  279. marmistrz has left
  280. goffi has left
  281. oibalos has left
  282. oibalos has joined
  283. adityaborikar has left
  284. adityaborikar has joined
  285. Zash has left
  286. asterix has left
  287. asterix has joined
  288. Guus has left
  289. mikeye has joined
  290. edhelas has left
  291. edhelas has joined
  292. asterix has left
  293. asterix has joined
  294. mikeye has left
  295. adrien has left
  296. paul has left
  297. stpeter has left
  298. Zash has joined
  299. oibalos has left
  300. kikuchiyo has left